Latest work

You can probably just leave this pull request open and pull these commits in individually as you want to.