added exception classes
work in progress