Grid with Cells, each Cell has a CellEntities list of CellEntity. Each CellEntity has a data object called CellEntityData. Classes that derive from CellEntity will have different functions, they could have different types of CellEntityData, but the way I have things set up right now that's not necessary, but might be in the future.CellEntity classes because I want Cell to do different things depending on the CellEntity (namely Instantiate different GameObjects in unity, among other things)CellEntity and CellEntityData be interfaces? Abstract classes?