To understand a concept, we need two operations on it: "Make" and "Deconstruct". Making is a kind of random process; for example, "make a digit" could yield very different digits, depending on the implementation. Doesn't matter. We can switch implementations all the time! We should implement this for digits.