always use queue so we keep the incs and decs in the right order