updated version of program