added exception classes.