First semi-wroking draft.  More to come.