diff --git a/README.md b/README.md
index 44f706bc7d60f906b4d8527a83c540d143e918c5..861c89fdd39a2e6a9e488e10885a12452957e21f 100644
--- a/README.md
+++ b/README.md
@@ -2,11 +2,35 @@
 
 ## Purpose
 This is to automatically test all the system's components and make sure they 
-work together correctly. If the integration test passes, it should guarantee
-that clients can send messages all the way through the system, including 
-mixing with multiple nodes and an anonymity set greater than 1. If the 
-integration test fails, look at the logs and narrow down the cause by adding
-more logging statements if necessary.
+work together correctly. There are 2 testing suite packages 
+(smokeinfra and basice2e) and a general long-running network package (localNetwork). 
+
+### Testing Suites
+These testing suites are used by the xx network team to ensure basic functionality
+of the network and its clients. It is a part of their CI/CD workflow. If the 
+integration tedigga#1
+st fails with an unknown or unhandled error, they look at the logs
+to narrow down and resolve the issue.
+
+[//]: # (link to the readme?)
+[SmokeInfra](./smokeinfra/) is a simple test of the xx network, ensuring that rounds are running. 
+Generally speaking, this is for the xx network team and developers that wish to 
+contribute to how the network operates.
+
+[BasicE2E](./basice2e) determines whether clients can send messages all the way through the system, including 
+mixing with multiple nodes and an anonymity set greater than 1. There are several
+tests of the client in this package, including features such as group messaging,
+file transfer, etc. Whenever a new feature is introduced to the client by the 
+xx network development team, a new test for this feature 
+is added to this testing suite via the run script (`run.sh`)
+
+## Local Network
+
+The [localNetwork package](./localNetwork) is a more general use network tool.
+This package will run a local version of the xx network on a single machine. 
+This can be done either via the `run.sh` script, which will run the network entirely
+locally with internal IP addresses, or the `runpublish.sh`, which runs the network
+with remotely accessible IP addresses.
 
 ## How to manually run locally