Cannon Aim to Mouse

I found a post, but now it just moves circular. Ex: moving up make the cannon turn right, moving down makes cannon move left…

Script:

	local part1Pos = mouse.Hit.Position
	local direction = (mouse.Hit.Position - aim.Position).Unit * 100
	
	local targetCf = CFrame.new(aim.Position, part1Pos + direction) * CFrame.Angles(0, -math.pi/2, 0)
	weld.C0 = aim.CFrame:Inverse() * targetCf