refactor variable arity definitions