support named arguments!
update example