Initial cut.  Flailing at initial design :)