added form ui field
added kv-pairs to function arguments
added unit test