make the parameter more flexible