Hmmm, this is going to take a while....