add support for named args

either use positional or named arguments