better RPC interface