builder: start on workflow-based rewrite