REFAC: split workflow.py into workflow/*.py