split rpc factory and execution in separate methods