obligatory:
There are only two hard things in Computer Science: cache
invalidation and naming things.
-- Phil Karlton