Added GPL disclaimer
Added setExtension method
Errors are now thrown