Various edits and additions. Far from finished.