initial commit

Still working on this, not quite done.