exceptions must derive from baseexception