variable number of params for macro