In this chapter, I've intentionally spent most of my time exploring the math in each equation and the algorithmic steps needed to arrive at a desired endpoint. By now, you can see how Clojure is a tool that lets you easily represent data and quickly perform calculations. As with Christophe Grande's suggestion, we want to let data drive the design of our software. We also want a loose coupling of our software, which will allow an orthogonal design. This means that small pieces will be easily composed into a larger whole. This also means minimizing the amount of baggage data or extra stuff (also known as local or dangling state) we carry in our data structures to only allow what's necessary in performing a given calculation.