introduce new parameter has.simple.signature. If set to TRUE, fn expects a vector, otherwise a named list