i think it's worth extracting `Identifiable` interface with `getId()` from these three classes and defining a constant `Function<Identifiable,String> IDENTITY_FUNCTION` which invokes `getId()` which is used in these 3 places