Add exceptions, bulk up on tests.