added exception/error handling & reporting