WIP fix blown stack with recursion