Made the custom exceptions publicly accessible, and added a new requirement to run tests