I gave some thought to the iterator idea - the only problem is that iterators are intended for one time usage only. There has to be some other kind of interface that provides access to the containers. If we go fine grained, it would be some tiny interface like `ContainerLister` or something like that. Coarse grained would be `Cluster`. Perhaps `AdminServer` itself should be an interface? It seems natural that something called `AdminServer` can get you a list of containers.

In theory the `StreamListener` class can query Curator directly, bypassing the cache and thus eliminating the need for the `AdminServer` at all. However it would be a shame to not use the cache that the server has already built.