We should do a refactor to merge these two, since there is no particular reason why they should be different passes.