implemented exception support