start recursion and OOP