First Pass
second Pass
Third Pass