added redesigned solution