factored out parameter type