reset() resets items manually

this avoids massive event proliferation by only emitting a single event on reset() rather than N+2 events