add support for optional params