add writable interface
add rpc class