Add recursion tracking (maybe?)