add batch editing function