Here is my code up to this point.  It is still incomplete.