microcounter uses atomic types