Added a bunch of tests. Have a long ways to go to get to 100% coverage.