merged and changed design