add support for named arguments