So ive been trying my hand at a vehicle, and so far its been going pretty good. However this is one thing that does not make any sense to me. I thought it would be a good idea to use a Body Velocity to move my vehicle (I'm really not make anything that advanced here), but no matter what value I use for the Velocity property of Body Velocity, the part I'm using simply goes in the same direction.

VehicleEvent.OnServerEvent:Connect(function(plr, Type, Motion)
	local CurrentBV = nil
	warn("Player Input Type:", Type, Motion)
	Vehicle.Anchored = false
	if Type == "InputBegan" then
		if Motion == "Forward" then
			ForwardHold = true
			CurrentBV = MoveVehicle(CFrame.new(0,0,-10), 10, CurrentBV)
			print(CurrentBV)
		end
		if Motion == "Left" then
			LeftHold = true
			CurrentBV = MoveVehicle(CFrame.new(-10,0,0), 10, CurrentBV)
			print(CurrentBV)
		end
		if Motion == "Backward" then
			BackwardHold = true
			CurrentBV = MoveVehicle(CFrame.new(0,0,10), 10, CurrentBV)
			print(CurrentBV)
		end
		if Motion == "Right" then
			RightHold = true
			CurrentBV = MoveVehicle(CFrame.new(10,0,0), 10, CurrentBV)
			print(CurrentBV)
		end
	else

Inside the function:

local MoveVehicle = function(MoveTo, P, CurrentBV)

	if CurrentBV ~= nil then
		CurrentBV:Destroy()
	end
	
	local BV = Instance.new("BodyVelocity",Vehicle)
	BV.Velocity = (Vehicle.CFrame * MoveTo).Position
	BV.P = P
	BV.MaxForce = Vector3.new(100000,100000,100000)
	Instance.new("Part",game.Workspace).Position = (Vehicle.CFrame * MoveTo).Position
	return BV
end

Is there a problem with my code, or have I completely misunderstood Body Velocity