public RenderTable wrapper(final GraphReportExtension mr) {
        GraphModelIterator it;
        if (!gens.equals(GeneratorFilters.NoGenerator)) {
            it = new GraphGeneratorIterator(gens);
        } else {
            it = new AllGraphIterator(type,size,part);
        }

        ToCall f = new ToCall() {
            @Override
            public Object f(GraphModel g) {
                return mr.calculate(g);
            }
        };
        int[] res = null;
        int fl = 0;
        RenderTable pq = new RenderTable();
        while (it.hasNext()) {
            fl++;
            GraphModel g = it.next();
            if(gf!=null) if(!gf.filter(g)) continue;
            if (iterative) {
                    getResIterLimited(f, g, it.getCount(), pq);
            } else {
                RenderTable ret = (RenderTable) f.f(g);
                Vector<Object> vo = ret.poll();
                if (res == null) {
                    Vector<String> tts = ret.getTitles();
                    tts.add("Num of Filtered Graphs");
                    pq.setTitles(tts);
                    res = new int[vo.size()];
                }
                for (int i = 1; i < vo.size(); i++) {
                    checkTypeOfBounds(vo, res, i, bound);
                }
            }
        }

        if (!iterative) {
            Vector<Object> result = new Vector<>();
            for (int re : res) {
                result.add(re);
            }
            result.add(it.size());
            pq.add(result);
        }

        return pq;
    }