restructure the program