declarative rpc framework