In this post I was planning to add Citizens to my simulation. I did, and it turned out to be as exciting as watching termites mate.
So instead, in this post I will add Citizens to my simulation, clean up my codebase, factor out all duplicate code using Traits and refactor the act/loop/react by introducing partial functions.