Final refactoring
Final refactoring