added a test for the exception throwing
wiring more exception testing
shifting around the logic to test more easily
shifting around the logic to simplify the tests