Added a lot of tests.  Organize it better later