exception handling is improved