rpc: designing rpc service (broken)