added exception level handling