Added more OOP Structure