Add support for optional arguments and some suppport for the