Raise Exception objects, not base strings
Extracted main world to separate file.
The angry comment doesn't apply to current Python versions that much.