diff --git a/hpvm/docs/hpvm-specification.md b/hpvm/docs/hpvm-specification.md
index 57e7fe65efc6b94c5ac3e1faedc027d555706463..d5c9e0041721f2376335d4808a34c7f8621b69f1 100644
--- a/hpvm/docs/hpvm-specification.md
+++ b/hpvm/docs/hpvm-specification.md
@@ -39,13 +39,13 @@ In an HPVM program, the host code is responsible for setting up, initiating the
 - **Initialization and Cleanup**:
 All HPVM operations must be enclosed by the HPVM initialization and cleanup. These operations perform initialization and cleanup of runtime constructs that provide the runtime support for HPVM.
 - **Track Memory**:
-Memory objects that are passed to dataflow graphs need to be managed by the HPVM runtime. The HPVM runtime includes a memory tracker for recording the location of HPVM-managed memory objects. Track memory starts tracking specified memory object.
+Memory objects that are passed to dataflow graphs need to be managed by the HPVM runtime. The HPVM runtime includes a memory tracker for recording the location, or tracking, of HPVM-managed memory objects. Track memory starts tracking specified memory object.
 - **Untrack Memory**:
 Stop tracking specified memory object.
 - **Request Memory**:
 If the specified memory object is not present in host memory, copy it to host memory.
 - **Launch**:
-The host code initiates execution of specified DFG, either streaming or non streaming, and passes initial data. All data for one graph execution must be provided.
+The host code initiates execution of specified DFG, either streaming or non streaming, and provides initial data. All data for one graph execution must be provided.
 - **Wait**:
 The host code blocks for completion of specified DFG.
 - **Push**: