Lots of updates. This is a horribly late commit.