Bunch of changes, not sure how to break them out. see commits