restruct program
merge