works except exceptions