Refactor with classes and change reset to a per-snake basis