#1 huge refactoring continues