added exception interception