First commit, but pretty much done.