change Caller interface to pass a map for args
change pattern syntax