diff --git a/README.md b/README.md
index 1c463ee..d58eb1f 100644
--- a/README.md
+++ b/README.md
@@ -2,20 +2,20 @@
[![Build Status](https://dev.azure.com/epicstuff/TypeEdge/_apis/build/status/Azure.TypeEdge)](https://dev.azure.com/epicstuff/TypeEdge/_build/latest?definitionId=15)
-**TypeEdge** introduces a strongly-typed flavor of the inherently loosely coupled vanilla [Azure IoT Edge](https:/azure.microsoft.com/en-us/services/iot-edge).
+**TypeEdge** is a strongly-typed development experience for [Azure IoT Edge](https:/azure.microsoft.com/en-us/services/iot-edge).
-Specifically, **TypeEdge**:
+**TypeEdge**:
-- Removes all configuration burden from an IoT Edge application, because configuration can be now automatically generated.
-- Introduces compile-time types checking across all modules
-- Adds the ability to **emulate an IoT Edge device in-memory** with no containers involved
-- Simplifies the IoT Edge development, down to an single F5 experience
+- Removes all plain-text configuration files from an IoT Edge application. Configuration is automatically generated by TypeEdge code bindings.
+- Introduces compile-time type checking across all modules.
+- Adds the ability to **emulate an IoT Edge device in-memory** without containers.
+- Simplifies IoT Edge development, down to a simple F5 experience.
Here is a quick video that demonstrates the value of **TypeEdge**
[![TypeEdge: Into](images/image.png)](https://youtu.be/_vWcpEjjtI0)
->Note: **TypeEdge** is an **experiment** created by a customer facing team at Microsoft called, Commercial Software Engineering. We work with customers on a daily basis and as a result of that work we created **TypeEdge**. It is being used by partners today across the globe. Please help us improve it by trying it out and providing us feedback.
+>Note: **TypeEdge** is an **experiment** created by a customer facing team at Microsoft called, Commercial Software Engineering. We work with customers on a daily basis and as a result of that work we created **TypeEdge**. It is being used by partners today around the globe. Please help us improve it by trying it out and providing us feedback.
## Prerequisites
@@ -30,7 +30,7 @@ To be able to publish your application, you will also need:
## Create a new **TypeEdge** application
-Here is the quickest way to get started with **TypeEdge**. In this quick start you will create an IoT Edge application with two modules and run it in the emulator:
+Here is the quickest way to get started with **TypeEdge**. In this quickstart you will create an IoT Edge application with two modules and run it in the emulator:
1. Install the TypeEdge .NET Core solution template. Just type:
```
@@ -63,22 +63,22 @@ After you use the template to create a new **TypeEdge** application, all you hav
1. Open in VS Code/Visual Studio 2017 and hit F5:
- - For VS Code run
+ - VS Code:
code .
- - For VS 2017 run
+ - Visual Studio:
Thermostat.sln
- - To run the application in the command line (no IDE):
+ - .NET Core:
```
dotnet build Thermostat.sln
cd Thermostat.Emulator
dotnet run
```
- >Note: In all three cases, your application is being emulated in-memory **without any containers involved**. This is very useful for quick develop and test iterations.
+ >Note: In all three cases, your application is being emulated in-memory **without containers**. This is very useful for quick develop and test iterations.
You should see now the Edge Hub starting up..
@@ -89,7 +89,7 @@ You should see now the Edge Hub starting up..
## Debugging inside the containers
-If your modules have system dependencies and you want to debug them inside the containers, you can leverage the *docker support* feature of VS 2017. Simply right click the **docker-compose** project and start it from VS 2017 to **debug your application inside the docker containers**.
+If your modules have system dependencies and you want to debug them inside the containers, you can leverage Visual Studio's *docker support* feature. Simply right click the **docker-compose** project and start it to **debug your application inside the docker containers**.
Alternatively, you can run your application inside the containers in command line:
@@ -186,7 +186,8 @@ public class SensorModule : TypeModule, ISensorModule
```
-A TypeEdge module can override any of the virtual methods of the base class ``TypeModule``. As demonstrated in the above example, the ``RunAsync`` method is used for defining long running loops, typically useful for modules that read sensor values. Another virtual method is ``Configure``, which can be used to read custom module configuration during startup.
+
+A **TypeEdge** module can override any of the virtual methods of the base class ``TypeModule``. As demonstrated in the above example, the ``RunAsync`` method is used for defining long running loops, typically useful for modules that read sensor values. Another virtual method is ``Configure``, which can be used to read custom module configuration during startup.
The complete ``TypeModule`` definition is:
@@ -210,6 +211,7 @@ public abstract class TypeModule : IDisposable
### Module Subscriptions
**TypeEdge** uses the pub/sub pattern for all module I/O, except for the direct methods. This means that a module can subscribe to other module outputs, and publish messages to their inputs. To do this, a reference to the module interface definition is required. **TypeEdge** uses dependency injection to determine the referenced modules.
+
Below is the constructor of the second module included in the application template called ``PreprocessorModule``, that references the ``SensorModule`` via its interface. Using this proxy, the ``PreprocessorModule`` module can subscribe to the ``SensorModule``:
```cs