diff --git a/hpvm/docs/hpvm-specification.md b/hpvm/docs/hpvm-specification.md
index ccddfc289d1489f4c0a1f1534eb8ace2bb5f40ee..360cf106e63c46387484aa755a93d53a2f02813d 100644
--- a/hpvm/docs/hpvm-specification.md
+++ b/hpvm/docs/hpvm-specification.md
@@ -185,5 +185,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.