Proper lerping with custom functions