Massive refactorings.