switch terminology from active/passive to publish/reply on ports; from leader/helper to coord/worker on engine types; remove abstract engine factory as introducing too much complexity for too little benefit right now