Move to more oop design