Implement custom exceptions, fix some CS
Merge pull request #18 from stloyd/feature/exceptions

Implement custom exceptions, fix some CS