a batch framework