some fix and add reset method