restructered the program