Refactor counter handling -- a Counter, once started, handles its own timekeeping, thread safety, etc.