merge OOP