recursion not bottoming out