ok, this will take a while. let me go get a glass of water...