Implemented full OOP.