move stuff around, make a generic script runner