support recursive MultiOutput