diff --git a/README.md b/README.md
index 03e548ae6f476f4c95aec9f20cc2df1ea97ab999..a50ae09d251b867be647eb7ea0c9e8a54c8b4a82 100644
--- a/README.md
+++ b/README.md
@@ -64,12 +64,15 @@ added to `ClientReply`.
 ### The Log
 The log will be a totally ordered list of strings, each in one of the following three formats:
 ```
-        string = <rep id>,<transaction id>,w,<key>,<value>
-        string = <rep id>,<transaction id>,r,<key>
-        string = <rep id>,<transaction id>,commit
-        string = <rep id>,<transaction id>,abort
+        string = <client id>,<transaction id>,w,<key>,<value>
+        string = <client id>,<transaction id>,r,<key>
+        string = <client id>,<transaction id>,commit
+        string = <client id>,<transaction id>,abort
 ```
-The first two define reads and writes in the log, while the last is a commit record.
+A "client id" is something you make up in your input strings. For instance, you can be
+running two instances of `transactionalClient.go` at the same time (both talking to
+replica 0). The strings you type into each of the clients should have different client ids.
+The first two record formats define reads and writes in the log, while the last is a commit record.
 
 ## Part 1: Serializable Transactions
 
@@ -106,7 +109,7 @@ log abstraction in `replica.go`
 ## Use of the `transactionalClient` 
 `transactionalClient.go` differs from `client.go` in that it reads commands
 interactively. Once started, it reads commands (arbitrary strings) from STDIN
-and sends them to replica 0. The sole exceptions is:
+and sends them to replica 0. The sole exception is:
 - `pause <n>` is interpreted as a command to pause for `n` seconds.
 
 All other strings are sent to the replica.