add custom exceptions; resolves issue #9