Restructure oop