starting to move diff_ methods to their own module