workflow and validation