start refactoring.