site foreach: first pass