This conceptual model replaces code. You use a graphical editor to drag out components with connectors on them and wire up the connectors. The software is in the white rectangle, and the real world, the storage on the left and the user on the right, are outside. A key idea is that all flows are unidirectional, from data on the left to the user interface on the right. Unidirectional flows and a uniform interface to the objects that are flowing are the keys to component reusability, which I think works well in this model. The concept of “projector” components at the right end is an interesting one that I'm still exploring. Projectors are terminal components at the right that turn the objects flowing into them into regions on the display. The window frame has a projector and all the parts of each window have their own projectors. Dialogs also have projectors.