code: public static Stream<Entity> walkEntities(final EntityContainer container, final int maxDepth) {
  	final EntityTreeWalker walker = new EntityTreeWalker(container, maxDepth, e -> EntityVisitResult.CONTINUE);
  	final Iterator<Entity> iterator = new Iterator<Entity>() {
  
  	    @Override
  	    public boolean hasNext() {
  		return walker.isWalking();
  	    }
  
  	    @Override
  	    public Entity next() {
  		return walker.walk();
  	    }
  	};
  
  	final int characteristics = Spliterator.CONCURRENT | Spliterator.NONNULL | Spliterator.DISTINCT;
  	return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, characteristics), false);
      }
docs: A lazy-walked stream of entities (recursive and breadth-first). The entire stream will not be
  loaded until it is iterated through.
  
  @param container
  Entity container.
  @param maxDepth
  Maximum depth of the walk.
  @return Lazy-walked recursive stream of entities.