Lots of Updates. See comments.