support for optional types on parameters