recursive solution, initial commit.  stripped, not 9.c