Clone position not copying Handles position properly

I’m making a throwable grenade that you can drop by unequipping after you pull the pin, but when I drop the grenade instead of dropping where I’m holding the tool it drops in front of the player. Here is the event for dropping:

script.Parent.Handle.Drop.OnServerEvent:Connect(function(player)
	if active == true then
		local grenade = tool.Handle:Clone()
		print(tool.Handle.CFrame)
		grenade.CanCollide = false
		grenade.Collision.CanCollide = true
		grenade.CFrame = tool.Handle.CFrame
		print(grenade.CFrame)
		grenade.Parent = workspace
		local BAV = Instance.new("BodyAngularVelocity")
		BAV.Parent = grenade.Collision
		BAV.AngularVelocity = Vector3.new(0,0,0)
		grenade.ThrowS:Play()
		tool:Destroy()
		wait(0.15)
		grenade.Touched:Connect(function()
			if sdebounce == false and grenade.Transparency ~= 1 then
				sdebounce = true
				local ids = {3039962927,3039919106,3039963296}
				grenade.Bounce.SoundId = "rbxassetid://"..ids[math.random(1,#ids)]
				grenade.Bounce:Play()
				wait(1)
				sdebounce = false
			end
		end)
		wait(FuseTime)
		Explosion(grenade)
	end
end)

Example of whats happening:
https://gyazo.com/5df07574affdda816edb8ba98d0bc416

so far i know CFrame doesnt change with animations

I previously used position, but that one didn’t work either. It’s spawning in front of the player slightly above as you can see so its not where the character was previously holding it.