Update by Dave prepared based on various review comments.