improve reset method