dont build result object until end