Conceptual Aside: Imperative vs. Declarative Programming