diff --git a/readme.md b/readme.md
index a01f96452263fa78b1d558ebf90b83b140bd02b6..2786db54727b253428908c89e2db171d72a65ec1 100644
--- a/readme.md
+++ b/readme.md
@@ -5,8 +5,19 @@ this is a bottom up implementation of jsonrpc2, primarily made for hosting eth-l
 structure:
 
 ```
-conn.go  -  defines the interface a json rpc client
-jrpc.go - define the Handler, HandlerFunc, and ResponseWriter
-request.go - define Request, along with json marshaling for the request
-response.go - define Response, along with json marshaling for the response
+conn.go        -  defines the interface a json rpc client
+jrpc.go        - define the Handler, HandlerFunc, and ResponseWriter
+request.go     - define Request, along with json marshaling for the request
+response.go    - define Response, along with json marshaling for the response
+server.go      - implemntation of a server, which uses a backing codec.ReaderWriter
+codec/         - codec related things
+  stdio/       - implementation of jrpc.Conn and codec.ReaderWriter
+  errors.go    - jsonrpc2 error codes and marshaling
+  json.go      - jsonrpc2 json rules, encoding, decoding
+  peer.go      - peerinfo
+  transport.go - define ReaderWriter interface
+  wire.go      - jsonrpc2 wire protocol marshaling, like ID and Version
+jmux/          - a chi based router which satisfies the jrpc.Handler interface
+clientutil/    - common utilities for client implementations to use
+  idreply.go   - generalizes making a request with an incrementing id, then waiting on it
 ```