diff --git a/xos/observers/helloworldservice/helloworldservice-observer.py b/xos/observers/helloworldservice/helloworldservice-observer.py
index 6f86202..91bbe96 100755
--- a/xos/observers/helloworldservice/helloworldservice-observer.py
+++ b/xos/observers/helloworldservice/helloworldservice-observer.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 
 # This imports and runs ../../xos-observer.py
+# Runs te standard XOS observer
 
 import importlib
 import os
diff --git a/xos/observers/helloworldservice/helloworldservice_config b/xos/observers/helloworldservice/helloworldservice_config
index 9afe406..ab0024d 100644
--- a/xos/observers/helloworldservice/helloworldservice_config
+++ b/xos/observers/helloworldservice/helloworldservice_config
@@ -44,7 +44,7 @@
 # We want to output from ansible to be logged
 save_ansible_output=True
 # This determines how we SSH to a client, if this is set to True then we try
-# to ssh using the instance name as a proxy, if this is disabled we ssh using 
+# to ssh using the instance name as a proxy, if this is disabled we ssh using
 # the NAT IP of the instance. On CloudLab the first option will fail so we must
 # set this to False
 proxy_ssh=False
diff --git a/xos/observers/helloworldservice/run.sh b/xos/observers/helloworldservice/run.sh
index 7b0ca1e..0fc5670 100755
--- a/xos/observers/helloworldservice/run.sh
+++ b/xos/observers/helloworldservice/run.sh
@@ -1,2 +1,3 @@
+# Runs the XOS observer using helloworldservice_config
 export XOS_DIR=/opt/xos
 python helloworldservice-observer.py  -C $XOS_DIR/observers/helloworldservice/helloworldservice_config
diff --git a/xos/observers/helloworldservice/steps/sync_helloworldtenant.py b/xos/observers/helloworldservice/steps/sync_helloworldtenant.py
index c032ec2..e971a96 100644
--- a/xos/observers/helloworldservice/steps/sync_helloworldtenant.py
+++ b/xos/observers/helloworldservice/steps/sync_helloworldtenant.py
@@ -7,28 +7,47 @@
 parentdir = os.path.join(os.path.dirname(__file__), "..")
 sys.path.insert(0, parentdir)
 
-
+# Class to define how we sync a tenant. Using SyncInstanceUsingAnsible we
+# indicate where the find the YAML for ansible, where to find the SSH key,
+# and the logic for determining what tenant needs updating, what additional
+# attributes are needed, and how to delete an instance.
 class SyncHelloWorldServiceTenant(SyncInstanceUsingAnsible):
+    # Indicates the position in the data model, this will run when XOS needs to
+    # enact a HelloWorldTenant
     provides = [HelloWorldTenant]
+    # The actual model being enacted, usually the same as provides.
     observes = HelloWorldTenant
+    # Number of miliseconds between interruptions of the observer
     requested_interval = 0
+    # The ansible template to run
     template_name = "sync_helloworldtenant.yaml"
+    # The location of the SSH private key to use when ansible connects to
+    # instances.
     service_key_name = "/opt/xos/observers/helloworldservice/helloworldservice_private_key"
 
     def __init__(self, *args, **kwargs):
         super(SyncHelloWorldServiceTenant, self).__init__(*args, **kwargs)
 
+    # Defines the logic for determining what HelloWorldTenants need to be
+    # enacted.
     def fetch_pending(self, deleted):
+        # If the update is not a deletion, then we get all of the instnaces that
+        # have been updated or have not been enacted.
         if (not deleted):
             objs = HelloWorldTenant.get_tenant_objects().filter(
                 Q(enacted__lt=F('updated')) | Q(enacted=None), Q(lazy_blocked=False))
         else:
+            # If this is a deletion we get all of the deleted tenants..
             objs = HelloWorldTenant.get_deleted_tenant_objects()
 
         return objs
 
+    # Gets the attributes that are used by the Ansible template but are not
+    # part of the set of default attributes.
     def get_extra_attributes(self, o):
         return {"display_message": o.display_message}
 
+    # Defines how to delete a HelloWorldTenant, since we don't have anyhting
+    # special to cleanup or dependencies we do nothing.
     def delete_record(self, m):
         return
diff --git a/xos/observers/helloworldservice/stop.sh b/xos/observers/helloworldservice/stop.sh
index 8a6f727..76e68d9 100755
--- a/xos/observers/helloworldservice/stop.sh
+++ b/xos/observers/helloworldservice/stop.sh
@@ -1 +1,2 @@
+# Kill the observer
 pkill -9 -f helloworldservice-observer.py
