Add Workflow; clean up & refactoring