diff --git a/hpvm/docs/hpvm-specification.md b/hpvm/docs/hpvm-specification.md
index c3706faa273fba931c2eb32a128300a46ef3193a..ca7a91d5696c5fd1da4c3602c6ec909761951f37 100644
--- a/hpvm/docs/hpvm-specification.md
+++ b/hpvm/docs/hpvm-specification.md
@@ -12,7 +12,7 @@ Internal nodes only create the structure of the child graph, and cannot include
 
 Leaf nodes contain code expressing actual computations. Leaf nodes may contain instructions to query the structure of the underlying DFG, and any non host side HPVM operation for synchronization and memory allocation.
 
-Note that the graph is full interpreted at compile-time and  cannot be modified at runtime except for the number of dynamic instances, which can be data dependent.
+Note that the graph is fully interpreted at compile-time and  cannot be modified at runtime except for the number of dynamic instances, which can be data dependent.
 
 
 ## Dataflow Edge
@@ -191,6 +191,8 @@ Pop and return data from streaming DFG with handle ```GraphID```. The return typ
 
 ## Implementation Limitations
 Due to limitations of our current prototype implementation, the following restrictions are imposed:
+
 - 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.
+
 - Instantiation of dataflow nodes is supported in up to three dimensions.