use built in combinatorial fn