add batch generator (interface only)