diff --git a/notes/hat.md b/notes/hat.md
index 702e3ce7a5832924f56d6fae865d1854f03e56cf..b49a785472753e9c59a9d4ba48946e6a086c21d1 100644
--- a/notes/hat.md
+++ b/notes/hat.md
@@ -81,7 +81,7 @@ guarantees. Assume invariant *x == y*:
 Both preserve consistency in isolation, but not w/ this schedule and dirty writes.	 
 
 
-## Isolation guarantees:
+## Isolation guarantee definitions:
 
 "**read uncommitted**" (PL-1)
 - writes to each obj totally ordered (prohibits dirty writes)
@@ -92,10 +92,17 @@ Both preserve consistency in isolation, but not w/ this schedule and dirty write
 - no dirty writes, reads
 - implement w/ buffers (though doesn't guarantee recency)
 
-"**repeatable read**"  (cut (*snapshot*) isolation)
-- item cut iso (multiple different values): buffer reads
-- predicate cut iso   (cut over "SELECT ..WHERE....")
-- impl both w/ buffering
+"**repeatable read**"
+- **cut** (*snapshot*) **isolation**
+  - single piece of data
+  - this is the usual meaning of RR
+  - implement by buffering read values
+- **item cut isolation** 
+  - multiple different values
+  - implement by buffering reads
+- **predicate cut isolation*
+  - cut over "SELECT ..WHERE....")  (phantom anomalies)
+  - implement by caching entire logical ranges
 
 ----
 ### Unachievable isolation levels with partitions: