parameters can be None