End of Spring 2013 semester commit.  This was a huge revision from the last version.