reset state properly for each __call__