There are two hard problems in computer science: caching things, naming things and off-by-one errors.