reconstructure the program