pass 2 implemented