Begin refactoring
Completed refactoring