More descriptive error class names
Add descriptive error message to raised error
Move condition to it's own line, so source is more readable
Add TomDoc