initial code base.  Still lots to do...