new workflow class structure