finished pass3, pass2