mostly finish on rpc modification