Looks like `epoch` and `reset` logic should be pushed to `pool` as generic solution. Isn't it ?