Many changes.  Fully functional program now