refactor counters once more