support custom combiner