exception handling altered