Refactoring for oo