Oo refactor