Let's return encoding and source by reference and move all the variables with the move constructor