updated pass 2