Creating models that describe the real world is one of the keys to successful software projects. These models should not try to completely replicate the real world but rather capture the essence of what's essential for a given implementation. Let's continue with our banking example. For a financial application, capturing the teller's name that takes a deposit might be overkill and unnecessarily complicate the model. But for an auditing application, who took the deposit might be critical. If a teller is skimming off the top and we don't keep track of this information, the pattern might never be found