re-layout
merge code