add BatchListener interface