o refactoring