Overall refactoring.