finished OOP transition