OOP using interface