diff --git a/.github/styles/Vocab/allow.txt b/.github/styles/Vocab/allow.txt
new file mode 100644
index 0000000..799ce62
--- /dev/null
+++ b/.github/styles/Vocab/allow.txt
@@ -0,0 +1,72 @@
+ACLs
+APIs
+Antisiphon
+Authy
+Cloudformation
+Cloudmapper
+Cloudtrail
+Cloudwatch
+Config
+Cryptocurrency
+Dockerfile
+Hashicorp
+Hygeine
+IPs
+Krug
+Makefile
+Nginx
+OUs
+Partitioner
+SCPs
+Serverless
+Stacksets
+URl
+Uncheck
+VMware
+Vehent
+athena
+attackbot
+aws
+bucketfrom
+captial
+cdk
+cli
+cloudformation
+cloudmapper
+cloudtrail
+cloudtrailanalysis
+cloudwatch
+config
+errors[0m,
+execed
+exfiltration
+finidng
+github
+hello_world
+hygeine
+misconfiguration
+partitioner
+productionadmin
+reddit
+sav
+securityaudit
+securityauditors
+seeeing
+serverless
+sso
+stacksets
+sthat
+subnets
+sudo
+teardown
+tfstate
+unfederatedAdministrator
+unfederatedadministrator
+virtualenv
+vm
+vmWare
+webauthn
+yml
+csv
+sts
+jpgs
\ No newline at end of file
diff --git a/.github/styles/spelling/spelling.yml b/.github/styles/spelling/spelling.yml
new file mode 100644
index 0000000..f2bff91
--- /dev/null
+++ b/.github/styles/spelling/spelling.yml
@@ -0,0 +1,6 @@
+extends: spelling
+message: "'%s' is a typo!"
+level: error
+ignore:
+ # Locate at StylesPath/Vocab/allow.txt
+ - Vocab/allow.txt
\ No newline at end of file
diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
new file mode 100644
index 0000000..98cffab
--- /dev/null
+++ b/.github/workflows/linting.yml
@@ -0,0 +1,13 @@
+name: Linting
+on: [pull_request]
+
+jobs:
+ prose:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@master
+ - name: Vale
+ uses: errata-ai/vale-action@v1.4.0
+ env:
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
\ No newline at end of file
diff --git a/.vale.ini b/.vale.ini
new file mode 100644
index 0000000..5c82ff7
--- /dev/null
+++ b/.vale.ini
@@ -0,0 +1,5 @@
+StylesPath = ".github/styles"
+MinAlertLevel = suggestion
+
+[*.md]
+BasedOnStyles = spelling # consider enabling write-good later
diff --git a/labs/01-lesson/02/02-setting-up-your-account.md b/labs/01-lesson/02/02-setting-up-your-account.md
index 5a6f44a..a025582 100644
--- a/labs/01-lesson/02/02-setting-up-your-account.md
+++ b/labs/01-lesson/02/02-setting-up-your-account.md
@@ -142,7 +142,7 @@ is a guardrail setup by the policy we just applied when the first user was creat
-15. Finally let's stop entering usernames and passwords in the web console. Try `aws-vault login unfederatedadmin` and your browser will open inside of the role you've just exec'ed into. Pretty Cool!
+15. Finally let's stop entering usernames and passwords in the web console. Try `aws-vault login unfederatedadmin` and your browser will open inside of the role you've just assumed. Pretty Cool!
diff --git a/supplemental/01-04/attackbot/README.md b/supplemental/01-04/attackbot/README.md
index 98a9eb0..1ae2121 100644
--- a/supplemental/01-04/attackbot/README.md
+++ b/supplemental/01-04/attackbot/README.md
@@ -69,7 +69,7 @@ attackbot$ sam local start-api
attackbot$ curl http://localhost:3000/
```
-The SAM CLI reads the application template to determine the API's routes and the functions that they invoke. The `Events` property on each function's definition includes the route and method for each path.
+The SAM CLI reads the application template to determine the API routes and the functions that they invoke. The `Events` property on each function's definition includes the route and method for each path.
```yaml
Events:
diff --git a/supplemental/05-01/nuke-config.yml b/supplemental/05-01/nuke-config.yml
index 1dc287a..fef30ee 100644
--- a/supplemental/05-01/nuke-config.yml
+++ b/supplemental/05-01/nuke-config.yml
@@ -1,6 +1,6 @@
regions:
-- eu-west-1
-- global
+- us-west-2
+- us-east-1
account-blacklist:
- "999999999999" # production