Every program has (at least) two purposes: the one for which it was written, and another for which it wasn't.
The most difficult thing in architecture is to be simple.