Total refactoring.