Help with arm movement

So I have a script which moves the arm when you move your mouse.
The issue is it only moves up and down and I want it to move freely when moving your mouse.

How can I do this?

My Code;

local remote = game:GetService("ReplicatedStorage").MoveArm

remote.OnServerEvent:Connect(function(player, character, mouseHit, mouseHitOrigin)
	local rightX, rightY, rightZ = character.Torso["Right Shoulder"].C0:ToEulerAnglesYXZ()
	character.Torso["Right Shoulder"].C0 = (character.Torso["Right Shoulder"].C0 * CFrame.Angles(0, 0, -rightZ)) * CFrame.Angles(0, 0, math.asin((mouseHit.p - mouseHitOrigin.p).unit.y))
end)

Thanks.