OOP remake

trying to add OOP