This is a OOP Abstraction