added exception facilities