design imp
merge
fixed reset function
merged design