Final refactoring complete