You know what they say, there are 2 hard problems in computer science: naming things, cache invalidation, and off by one errors.