make everything object oriented