reimplemented design part