LOTS of refactoring (2)