Finished RecursionPractical.  Needs testing.