Heavy refactoring interim commit - broken