refactor and build out batch runner