Commit current WIP

Lots of things typed up from the spec - not working yet.