restructure of the program