[functional] add arguments support