new design
merge conflict fixed