moved workflow PEs to base.py