moved classes to their own files, changed error text
Merge branch 'unrevised'