add rpc function