Error Handling

Create custom error types
More consistent log messages