Redid the architecture for updating the program.  #240