starting on optimization pass 2