batch 2-1: first pass