use dataset from input query
subdivide commands and runners in two classes