added exception capability