add arguments and default support