Refactor OO