updated update program method