Example implementation of OOP