final program
merge conflicts removed