fix recurse