Initial version
  * all important pieces are in, needs testing, tweaking and documentation