Fix a bug that optional arguments can't be optional