Big Refactoring.