Merge back solo branch

I did a bunch of development on my own. I am merging it back into the
repository to keep it safe.