refactoring, moving code around to get warm with it