Changing everything to oop