• More generally, each unit of code, from a block to a library, should have a narrow interface. Less communication reduces the reasoning required. This means that getters that return internal state are a liability don’t ask an object for information to work with. Instead, ask the object to do the work with the information it already has. In other words, encapsulation is all and only about narrow interfaces.