refactor `reset`