Homework seems to be working.  Needs more testing