reset implementation