adding support for derived exceptions