If we changed something it is clearly uptodate So we only have three states a- changed (then it is also uptodate) b- uptodate (then it has not been changed yet) c- neither (it is neither uptodate nor changed) Bitfields might be a very reasonable solution so that a changed flag always set the uptodate flag as well.