More refactoring. Too many helper methods. Now much less.