with assign it's wrong to recursively apply, fixed a random bug that counter does not update after round 2