Improved extensibility and fixed invalid Exceptions. Closes #6