update the program implementation