simplified exception handling