A step towards better recursion (hopefully)