refine combination constructor