Bottom-up design starts with a set of cohesive solution operations, perhaps the management of some data structure.
You decide how to represent the data, and how to interact with it. That usually means operations to create an
empty structure, to add data to the structure, to define transformations consistent with the data
being managed, and means to extract and delete data.
The class and public interface names should support a mental model of the data and its transformations. For example,
that model could be an Value Type or a table of symbols or relationships.