If we had `DynamicCluster<M extends Entity>` using paramaterised types, we could make it implement `Iterable<M>` and put this in the `DynamicClusterImpl` instead. Perhaps something to think about. Is there a reason `Group` or `Cluster` entities can't use generics? Or at least some sub-class that is restricted to having only a single type of entity as a member?