first commit.  this code is incomplete and will not work as is.