Improved the mechanism for passing in optional parameters