support for optional args

added support for optional args with default values