First commit. Mostly works.