Merge branch 'recursion' into incenteev-patches