updated design
updated after merge