improved reset method