the previous refactoring has opened doors to a really cool logic decomposition