Help with growing a part to another part

how can I grow a part to another part
(heres my current code, image is the result – it works if the mousePos is on the same Y and X point as the startingPos)

local function arm()
    local na = fist:Clone()
    na.CFrame = CFrame.new(startingPos, mousePos)
    na["Meshes/Clenched Right Fist"].CFrame = CFrame.new(startingPos, mousePos)
    na.Size = Vector3.new(3.7, 3.35, 0.001)
    na.Parent = partFolder
    
    local distance = math.abs((startingPos - mousePos).Magnitude)
    local np = Vector3.new(na.Position.X, na.Position.Y, na.Position.Z+(distance/2))
    local fp = Vector3.new(na.Position.X, na.Position.Y, na.Position.Z+distance+1)
    
    ts:Create(na, TweenInfo.new(0.5+(distance/1000), Enum.EasingStyle.Cubic), {Size = Vector3.new(3.7, 3.35, distance), Position=np}):Play()
    ts:Create(na["Meshes/Clenched Right Fist"], TweenInfo.new(0.5+(distance/1000), Enum.EasingStyle.Cubic), {Position=fp}):Play()
end

never mind, I got it to work

local function kartof()
    local A = startingPos
    local B = mousePos
    return A + (B-A)/2
end

local function arm()
    local na = fist:Clone()
    na.CFrame = CFrame.new(startingPos, mousePos)
    na["Meshes/Clenched Right Fist"].CFrame = CFrame.new(startingPos, mousePos)
    na.Size = Vector3.new(3.7, 3.35, 0.001)
    na.Parent = partFolder
    
    local distance = math.abs((startingPos - mousePos).Magnitude)
    local np = kartof()--Vector3.new(na.Position.X, na.Position.Y, na.Position.Z+(distance/2))
    local fp = kartof()--Vector3.new(na.Position.X, na.Position.Y, na.Position.Z+distance+1)
    
    ts:Create(na, TweenInfo.new(0.5+(distance/1000), Enum.EasingStyle.Cubic), {Size = Vector3.new(3.7, 3.35, distance), Position=np}):Play()
    ts:Create(na["Meshes/Clenched Right Fist"], TweenInfo.new(0.5+(distance/1000), Enum.EasingStyle.Cubic), {Position=fp}):Play()
end