refactor batch push