I need help on making a weld change its C0 value while transitioning it so it moves smoothly, but I cant use CFrame:lerp() on C0. Please tell me if this is even possible, Here's the code:

mode.Changed:connect(function()
	if mode.Value == true then
		print('true')
		weapon.Handle.Joint.Part1 = weapon.SwordHandle
		weapon.Blade1.Joint.C0 = transblade1
		weapon.Base.Joint.C0 = transbase
		weapon.Lock1.Joint.C0 = translock1
		weapon.Lock2.Joint.C0 = translock2
	else
		print('false')
		weapon.Handle.Joint.Part1 = weapon.GunHandle
		weapon.Blade1.Joint.C0 = baseblade1
		weapon.Base.Joint.C0 = basebase
		weapon.Lock1.Joint.C0 = baselock1
		weapon.Lock2.Joint.C0 = baselock2
	end
end)

transblade1, transbase, translock1, translock2, baseblade1, basebase, baselock1, and baselock2 are CFrame values