recursion bugfixes