some progress but we need to write a new RPC library