Final submission, catches all errors, has some comments.