everything is now OOP