Updated license
Better exception types
Better formatting
Broke up tests