diff --git a/hpvm/docs/hpvm-specification.md b/hpvm/docs/hpvm-specification.md
index 20ed00a5a1f0f14ba713ffcd59be314b49e1906c..a5c744d7be41352b183df1cc48aa5be0a26c261b 100644
--- a/hpvm/docs/hpvm-specification.md
+++ b/hpvm/docs/hpvm-specification.md
@@ -183,5 +183,5 @@ Pop  and return data from streaming DFG with handle ```GraphID```.
 
 ## Implementation Limitations
 Due to limitations of our current prototype implementation, the following restrictions are imposed:
-- In HPVM, a memory object is represented as a combination of a pointer to a memory location and the size of the pointed-to object. Therefore, when an edge/bind carries a pointer to an input location, then the edge/bind incoming to the next input location is required to transfer a value of type i64 containing the size, in bytes, of the transferred memory object represented by the pointer-size pair.
-- Pointers cannot be transferred between nodes using dataflow edges. Instead, they may be passed using the bind operation from the (common) parent of the source and sink nodes.
+- In HPVM, a memory object is represented as a (pointer, size) pair that includes the address of memory object, and the size (in bytes) of the pointed-to object. Therefore, when an edge/bind carries a pointer, it must be followed by an i64 size value.           
+- Pointers cannot be transferred between nodes using dataflow edges. Instead, they should be passed using the bind operation from the (common) parent of the source and sink nodes.