done with first pass