Many useful corrections resulting from Chris Lattner's review. Thanks Chris!