added exceptions and Workflow object