implement new design