First draft.  Incomplete & not working yet.