do not need recursive_call anymore
some renaming in specs