support for optional parameters