add methods_and_recursion