How to smooth ADS with lerps

i want to make my gun aim smoothly using lerps but it just doesnt work:

before aiming:


.
after aiming:

.
and (for technical reasons i cant record a video) it will continue to fall off the map

runService.RenderStepped:Connect(function(delta)
	
	--Shooting
	if inputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) and tool.Parent == char then
		shoot()
	end
	
	--ADS
	if inputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
		--AIMING / THIS IS THE PROBLEM
		viewmodel.AimPart.CFrame = viewmodel.AimPart.CFrame:Lerp(camera.CFrame,0.6)
		
	else
		--NOT AIMING
		viewmodel:PivotTo(camera.CFrame)
		
	end
end)
local ADS = Instance.new("NumberValue")

ADS:GetPropertyChangedSignal("Value"):Connect(function()
	--Lerp The AimPartCFrame with the ADS.Value
end)

--Tween the ADS.Value

also ive noticed, u are changing the CFrame of aimpart using lerp of itself into the camera.cframe, wont that cause it to keep lerping itself using the current cframe as its Origin? cause it to keep on moving forward because the origin keeps getting updated into the new cframe, i believe when using lerp, u should have 3 instances that holds the OriginCFrame, the Subject, and the GoalCFrame