diff --git a/src/DrupalCI/Console/Command/BuildCommand.php b/src/DrupalCI/Console/Command/BuildCommand.php
index 4db62f6..a3938eb 100644
--- a/src/DrupalCI/Console/Command/BuildCommand.php
+++ b/src/DrupalCI/Console/Command/BuildCommand.php
@@ -14,6 +14,9 @@ use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Input\InputArgument;
 use Docker\Context\Context;
 
+/**
+ * Command class to support the 'build' command.
+ */
 class BuildCommand extends DrupalCICommandBase {
 
   /**
@@ -42,7 +45,7 @@ class BuildCommand extends DrupalCICommandBase {
     $helper = new ContainerHelper();
     $containers = $helper->getAllContainers();
     $names = $input->getArgument('container_name');
-    // TODO: Validate passed arguments
+    // @todo: Validate passed arguments.
     foreach ($names as $name) {
       if (in_array($name, array_keys($containers))) {
         Output::writeln("<comment>Building <options=bold>$name</options=bold> container</comment>");
@@ -51,13 +54,18 @@ class BuildCommand extends DrupalCICommandBase {
       else {
         // Container name not found.  Skip build.
         Output::writeln("<error>No '$name' container found.  Skipping container build.</error>");
-        // TODO: Error handling
+        // @todo: Error handling.
       }
     }
   }
 
   /**
-   * (#inheritdoc)
+   * Perform the build operation.
+   *
+   * @param string $name
+   *   Container name.
+   * @param InputInterface $input
+   *   Input. Unused.
    */
   protected function build($name, InputInterface $input) {
     $helper = new ContainerHelper();
@@ -79,8 +87,9 @@ class BuildCommand extends DrupalCICommandBase {
     $response->getBody()->getContents();
     Output::writeln((string) $response);
 
-    // TODO: Capture return value and determine whether build was successful or not, throwing an error if it isn't.
-    // (This may already automatically throw an exception within docker-php)
+    // @todo: Capture return value and determine whether build was successful or
+    // not, throwing an error if it isn't (This may already automatically throw
+    // an exception within docker-php).
     /* LEGACY CODE - original notification
     if ($return_var === 0) {
       $output->writeln("<comment>Container <options=bold>$name</options=bold> build complete.</comment>");
@@ -92,4 +101,5 @@ class BuildCommand extends DrupalCICommandBase {
     }
     */
   }
+
 }
diff --git a/src/DrupalCI/Console/Command/DockerRemoveCommand.php b/src/DrupalCI/Console/Command/DockerRemoveCommand.php
index d537f1e..489c404 100644
--- a/src/DrupalCI/Console/Command/DockerRemoveCommand.php
+++ b/src/DrupalCI/Console/Command/DockerRemoveCommand.php
@@ -15,6 +15,9 @@ use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputOption;
 
+/**
+ * Command class to support the 'docker-rm' command.
+ */
 class DockerRemoveCommand extends DrupalCICommandBase {
 
   /**
@@ -51,7 +54,7 @@ class DockerRemoveCommand extends DrupalCICommandBase {
   }
 
   /**
-   * (@inheritdoc)
+   * Performs the list of containers.
    */
   protected function listContainers($type, InputInterface $input, OutputInterface $output) {
     Output::setOutput($output);
@@ -63,68 +66,70 @@ class DockerRemoveCommand extends DrupalCICommandBase {
   }
 
   /**
-   * (@inheritdoc)
+   * Get list DCI container type.
    */
   protected function imageTypes($type, InputInterface $input, OutputInterface $output) {
-    // get list DCI container type
+    // Get list DCI container type.
     $image_type = '';
     switch ($type) {
-    case 'containers':
-      break;
-    case 'db':
-      $image_type = 'mysql|pgsql|mariadb';
-      break;
-    case 'web':
-      $image_type = 'web';
-      break;
-    case 'php':
-      $image_type = 'php';
-      break;
+      case 'containers':
+        break;
+
+      case 'db':
+        $image_type = 'mysql|pgsql|mariadb';
+        break;
+
+      case 'web':
+        $image_type = 'web';
+        break;
+
+      case 'php':
+        $image_type = 'php';
+        break;
     }
     return $image_type;
   }
 
   /**
-   * (@inheritdoc)
+   * Remove containers.
    */
-  protected function removeContainers($type, InputInterface $input,OutputInterface $output) {
+  protected function removeContainers($type, InputInterface $input, OutputInterface $output) {
 
     Output::setOutput($output);
 
-    // DCI search string
+    // DCI search string.
     $search_string = 'drupalci';
     $image_type = $this->imageTypes($type, $input, $output);
-    if(!empty($image_type)){
+    if (!empty($image_type)) {
       $search_string .= "' | egrep '" . $image_type;
     }
 
-    // get list of create DCI containers
+    // Get list of create DCI containers.
     $cmd_docker_psa = "docker ps -a | grep '" . $search_string . "' | awk '{print $1}'";
-    // get list of active DCI containers
+    // Get list of active DCI containers.
     $cmd_docker_ps = "docker ps | grep '" . $search_string . "' | awk '{print $1}'";
     exec($cmd_docker_psa, $createdContainers);
 
-    if($createdContainers) {
+    if ($createdContainers) {
       Output::writeln('<comment>Removing containers.</comment>');
       exec($cmd_docker_ps, $runningContainers);
-      if(!empty($runningContainers)){
-        // kill DCI running containers
+      if (!empty($runningContainers)) {
+        // Kill DCI running containers.
         $cmd_docker_kill = "docker kill " . implode(' ', $runningContainers);
-        exec( $cmd_docker_kill, $killContainers);
+        exec($cmd_docker_kill, $killContainers);
       }
 
-      // remove DCI containers
+      // Remove DCI containers.
       $cmd_docker_rm = "docker rm " . implode(' ', $createdContainers);
-      exec( $cmd_docker_rm, $rmContainers);
+      exec($cmd_docker_rm, $rmContainers);
 
-      // list removed containers
+      // List removed containers.
       Output::writeln('Removed Containers:');
       Output::writeln($rmContainers);
 
       // DEBUG
       //Output::writeln($rmContainers);
-
-      //check to for any DCI after the kill and remove
+      // Check to for any DCI after the kill and remove.
       exec($cmd_docker_psa, $remove_check);
 
       if (!empty($remove_check)) {
@@ -136,9 +141,9 @@ class DockerRemoveCommand extends DrupalCICommandBase {
       }
     }
     else {
-      // nothing to remove
+      // Nothing to remove.
       Output::writeln('<comment>Nothing to Remove</comment> ');
     }
-
   }
+
 }
diff --git a/src/DrupalCI/Console/Command/DrupalCICommandBase.php b/src/DrupalCI/Console/Command/DrupalCICommandBase.php
index fb42867..5f632c7 100644
--- a/src/DrupalCI/Console/Command/DrupalCICommandBase.php
+++ b/src/DrupalCI/Console/Command/DrupalCICommandBase.php
@@ -19,47 +19,64 @@ use Docker\Http\DockerClient as Client;
  * Just some helpful debugging stuff for now.
  */
 class DrupalCICommandBase extends SymfonyCommand {
-    // Defaults for the underlying commands i.e. when commands run with --no-interaction or
-    // when we are given options to setup containers.
-    protected $default_build = array(
-      'base'     => 'all',
-      'web'      => 'drupalci/web-5.5',
-      'database' => 'drupalci/mysql-5.5',
-      'php'      => 'all'
-    );
 
-    // Holds our Docker container manager
-    protected $docker;
+  // Defaults for the underlying commands i.e. when commands run with
+  // --no-interaction or when we are given options to setup containers.
+  protected $default_build = array(
+    'base' => 'all',
+    'web' => 'drupalci/web-5.5',
+    'database' => 'drupalci/mysql-5.5',
+    'php' => 'all'
+  );
 
+  /**
+   * Holds our Docker container manager.
+   *
+   * @var Docker
+   */
+  protected $docker;
+
+  /**
+   * Show arguments.
+   *
+   * @param InputInterface $input
+   * @param OutputInterface $output
+   */
   protected function showArguments(InputInterface $input, OutputInterface $output) {
     $output->writeln('<info>Arguments:</info>');
     $items = $input->getArguments();
-    foreach($items as $name=>$value) {
+    foreach ($items as $name => $value) {
       $output->writeln(' ' . $name . ': ' . print_r($value, TRUE));
     }
     $output->writeln('<info>Options:</info>');
     $items = $input->getOptions();
-    foreach($items as $name=>$value) {
+    foreach ($items as $name => $value) {
       $output->writeln(' ' . $name . ': ' . print_r($value, TRUE));
     }
+  }
 
+  /**
+   * Get docker object.
+   *
+   * @return Docker
+   */
+  public function getDocker() {
+    $client = Client::createWithEnv();
+    if (NULL === $this->docker) {
+      $this->docker = new Docker($client);
     }
+    return $this->docker;
+  }
 
-  public function getDocker()
-    {
-        $client = Client::createWithEnv();
-        if (null === $this->docker) {
-            $this->docker = new Docker($client);
-        }
-        return $this->docker;
-    }
-
-
-  public function getManager()
-    {
+  /**
+   * Get docker image manager.
+   *
+   * @return type
+   */
+  public function getManager() {
     // if (null === $this->getManager()) {
-      return $this->getDocker()->getImageManager();
+    return $this->getDocker()->getImageManager();
     // }
-    }
+  }
 
 }
diff --git a/src/DrupalCI/Console/DrupalCIConsoleApp.php b/src/DrupalCI/Console/DrupalCIConsoleApp.php
index 02b3df8..7327f6e 100644
--- a/src/DrupalCI/Console/DrupalCIConsoleApp.php
+++ b/src/DrupalCI/Console/DrupalCIConsoleApp.php
@@ -30,6 +30,11 @@ use DrupalCI\Console\Command\Config\ConfigClearCommand;
 use DrupalCI\Console\Command\Status\StatusCommand;
 use PrivateTravis\PrivateTravisCommand;
 
+/**
+ * DrupalCI application class.
+ *
+ * Mostly here to allow us to add our commands easily.
+ */
 class DrupalCIConsoleApp extends Application {
 
   /**
diff --git a/src/DrupalCI/Console/Output.php b/src/DrupalCI/Console/Output.php
index 366ceaa..6312e31 100644
--- a/src/DrupalCI/Console/Output.php
+++ b/src/DrupalCI/Console/Output.php
@@ -7,9 +7,14 @@
 
 namespace DrupalCI\Console;
 
+/**
+ * Static output object to avoid dependency injection.
+ */
 class Output {
 
   /**
+   * The output to use.
+   *
    * @var \Symfony\Component\Console\Output\OutputInterface
    */
   static protected $output;
diff --git a/src/DrupalCI/Job/Definition/JobDefinition.php b/src/DrupalCI/Job/Definition/JobDefinition.php
index 306b4ac..11651d1 100644
--- a/src/DrupalCI/Job/Definition/JobDefinition.php
+++ b/src/DrupalCI/Job/Definition/JobDefinition.php
@@ -15,13 +15,28 @@ use Symfony\Component\Filesystem\Exception\FileNotFoundException;
 use Symfony\Component\Yaml\Exception\ParseException;
 use Symfony\Component\Yaml\Yaml;
 
+/**
+ * Job Definition.
+ *
+ * @todo: Other potential methods for this class:
+ * - insert build step before/after
+ * - get/set DCI_parameters
+ */
 class JobDefinition {
 
-  // Location of our job definition template
+  /**
+   * Location of our job definition template.
+   *
+   * @var string
+   */
   protected $template_file;
   protected function setTemplateFile($template_file) {  $this->template_file = $template_file; }
 
-  // Contains our array of DCI_* variables
+  /**
+   * Contains our array of DCI_* variables.
+   *
+   * @var string
+   */
   protected $dci_variables;
   public function getDCIVariables() {  return $this->dci_variables;  }
   public function setDCIVariables($dci_variables) {  $this->dci_variables = $dci_variables;  }
@@ -30,25 +45,36 @@ class JobDefinition {
     return (!empty($this->dci_variables[$dci_variable])) ? $this->dci_variables[$dci_variable] : NULL;
   }
 
-  // Contains the parsed job definition
+  /**
+   * Contains the parsed job definition.
+   *
+   * @var array
+   */
   protected $definition = array();
   public function getDefinition() {  return $this->definition;  }
   protected function setDefinition(array $job_definition) {  $this->definition = $job_definition;  }
 
-  // Contains the array of build steps
+  /**
+   * Contains the array of build steps.
+   *
+   * @var array
+   */
   protected $build_steps = array();
   public function getBuildSteps() {  return $this->build_steps;  }
   protected function setBuildSteps(array $build_steps) {  $this->build_steps = $build_steps;  }
 
   /**
+   * Plugin manager.
+   *
    * @var \DrupalCI\Plugin\PluginManager;
    */
   protected $pluginManager;
 
   public function loadTemplateFile($template_file) {
-    // TODO: Pass in Job instead of template file, and calculate what template file we need as a result
+    // @todo: Pass in Job instead of template file, and calculate what template
+    // file we need as a result.
 
-    // Store the template location
+    // Store the template location.
     $this->setTemplateFile($template_file);
 
     // Get and parse the default definition template (containing %DCI_*%
@@ -74,23 +100,29 @@ class JobDefinition {
   }
 
   /**
-   * Compile the complete list of DCI_* variables
+   * Compile the complete list of DCI_* variables.
+   *
+   * @param JobInterface $job
    */
   public function compile(JobInterface $job) {
-    // Compile our list of DCI_* variables
+    // Compile our list of DCI_* variables.
     $this->compileDciVariables($job);
   }
 
   /**
+   * Populates the job definition template.
+   *
    * Populates the job definition template based on DCI_* variables and
-   * job-specific arguments
+   * job-specific arguments.
+   *
+   * @param JobInterface $job
    */
   public function preprocess(JobInterface $job) {
-    // Execute variable preprocessor plugin logic
+    // Execute variable preprocessor plugin logic.
     $this->executeVariablePreprocessors();
-    // Execute definition preprocessor plugin logic
+    // Execute definition preprocessor plugin logic.
     $this->executeDefinitionPreprocessors();
-    // Process DCI_* variable substitution into the job definition template
+    // Process DCI_* variable substitution into the job definition template.
     $this->substituteTemplateVariables();
     // Add the build variables and job definition to our job object, for
     // compatibility.
@@ -101,10 +133,12 @@ class JobDefinition {
   }
 
   /**
-   * Validate that the job contains all required elements defined in the class
+   * Validate that the job contains all required elements defined in the class.
+   *
+   * @param JobInterface $job
    */
   public function validate(JobInterface $job) {
-    // TODO: Ensure that all 'required' arguments are defined
+    // @todo: Ensure that all 'required' arguments are defined.
     $definition = $this->getDefinition();
     $failflag = FALSE;
     foreach ($job->getRequiredArguments() as $env_var => $yaml_loc) {
@@ -113,7 +147,7 @@ class JobDefinition {
       }
       else {
         // Look for the appropriate array structure in the job definition file
-        // eg: environment:db
+        // eg: environment:db.
         $keys = explode(":", $yaml_loc);
         $eval = $definition;
         foreach ($keys as $key) {
@@ -125,11 +159,11 @@ class JobDefinition {
               $eval = $eval[$key][0];
             }
             else {
-              $eval=$eval[$key];
+              $eval = $eval[$key];
             }
           }
           else {
-            // Missing a required key in the array key chain
+            // Missing a required key in the array key chain.
             $failflag = TRUE;
             break;
           }
@@ -138,23 +172,30 @@ class JobDefinition {
           continue;
         }
       }
-      // If processing gets to here, we're missing a required variable
+      // If processing gets to here, we're missing a required variable.
       Output::error("Invalid Job Definition", "Required test parameter <options=bold>'$env_var'</options=bold> not found in environment variables, and <options=bold>'$yaml_loc'</options=bold> not found in job definition file.");
-      // TODO: Graceful handling of failed exit states
+      // @todo: Graceful handling of failed exit states.
       return FALSE;
     }
-    // TODO: Strip out arguments which are not defined in the 'Available' arguments array
+    // @todo: Strip out arguments which are not defined in the 'Available'
+    // arguments array.
     return TRUE;
   }
 
   /**
-   * Given a file, returns an array containing the parsed YAML contents from that file
+   * Parse YAML contents of a file.
+   *
+   * Given a file, returns an array containing the parsed YAML contents from
+   * that file.
+   *
+   * @param string $source
+   *   Contents of a YAML source file.
    *
-   * @param $source
-   *   A YAML source file
    * @return array
-   *   an array containing the parsed YAML contents from the source file
+   *   An array containing the parsed YAML contents from the source file
+   *
    * @throws ParseException
+   *   If the contents are not parseable, throws this exception.
    */
   protected function loadYaml($source) {
     if ($content = file_get_contents($source)) {
@@ -164,7 +205,9 @@ class JobDefinition {
   }
 
   /**
-   * Compiles the list of available DCI_* variables to consider with this job
+   * Compiles the list of available DCI_* variables to consider with this job.
+   *
+   * @param JobInterface $job
    */
   protected function compileDciVariables(JobInterface $job) {
     // Get and parse external (i.e. anything not from the default definition
@@ -173,21 +216,23 @@ class JobDefinition {
     // platform while running DrupalCI jobs.  This hierarchy is defined as
     // follows, which each level overriding the previous:
 
-    // 1. Out-of-the-box DrupalCI platform defaults, as defined in DrupalCI/Plugin/JobTypes/JobBase->platformDefaults
+    // 1. Out-of-the-box DrupalCI platform defaults, as defined in
+    // DrupalCI/Plugin/JobTypes/JobBase->platformDefaults.
     $platform_defaults = $job->getPlatformDefaults();
     if (!empty($platform_defaults)) {
       Output::writeLn("<comment>Loading DrupalCI platform default arguments:</comment>");
       Output::writeLn(implode(",", array_keys($platform_defaults)));
     }
 
-    // 2. Out-of-the-box DrupalCI JobType defaults, as defined in DrupalCI/Plugin/JobTypes/<jobtype>->defaultArguments
+    // 2. Out-of-the-box DrupalCI JobType defaults, as defined in
+    // DrupalCI/Plugin/JobTypes/<jobtype>->defaultArguments.
     $jobtype_defaults = $job->getDefaultArguments();
     if (!empty($jobtype_defaults)) {
       Output::writeLn("<comment>Loading job type default arguments:</comment>");
       Output::writeLn(implode(",", array_keys($jobtype_defaults)));
     }
 
-    // 3. Local overrides defined in ~/.drupalci/config
+    // 3. Local overrides defined in ~/.drupalci/config.
     $confighelper = new ConfigHelper();
     $local_overrides = $confighelper->getCurrentConfigSetParsed();
     if (!empty($local_overrides)) {
@@ -195,21 +240,21 @@ class JobDefinition {
       Output::writeLn(implode(",", array_keys($local_overrides)));
     }
 
-    // 4. 'DCI_' namespaced environment variable overrides
+    // 4. 'DCI_' namespaced environment variable overrides.
     $environment_variables = $confighelper->getCurrentEnvVars();
     if (!empty($environment_variables)) {
       Output::writeLn("<comment>Loading local namespaced environment variable override arguments.</comment>");
       Output::writeLn(implode(",", array_keys($environment_variables)));
     }
 
-    // 5. Additional variables passed in via the command line
-    // TODO: Not yet implemented
+    // 5. Additional variables passed in via the command line.
+    // @todo: Not yet implemented
     $cli_variables = ['DCI_JobBuildId' => $job->getBuildId()];
 
-    // Combine the above to generate the final array of DCI_* key=>value pairs
+    // Combine the above to generate the final array of DCI_* key=>value pairs.
     $dci_variables = $cli_variables + $environment_variables + $local_overrides + $jobtype_defaults + $platform_defaults;
 
-    // Reorder array, placing priority variables at the front
+    // Reorder array, placing priority variables at the front.
     if (!empty($job->priorityArguments)) {
       $original_array = $dci_variables;
       $original_keys = array_keys($original_array);
@@ -227,7 +272,7 @@ class JobDefinition {
   }
 
   /**
-   * Execute Variable preprocessor Plugin logic
+   * Execute Variable preprocessor Plugin logic.
    */
   protected function executeVariablePreprocessors() {
     // For each DCI_* element in the array, check to see if a variable
@@ -260,7 +305,7 @@ class JobDefinition {
   }
 
   /**
-   * Execute Variable preprocessor Plugin logic
+   * Execute Variable preprocessor Plugin logic.
    */
   protected function executeDefinitionPreprocessors() {
     $definition = $this->getDefinition();
@@ -282,10 +327,10 @@ class JobDefinition {
   }
 
   /**
-   * Substitute DCI_* variables into the job definition template
+   * Substitute DCI_* variables into the job definition template.
    */
   protected function substituteTemplateVariables() {
-    // Generate our replacements array
+    // Generate our replacements array.
     $replacements = [];
     $dci_variables = $this->getDCIVariables();
     foreach ($dci_variables as $key => $value) {
@@ -295,10 +340,10 @@ class JobDefinition {
       }
     }
 
-    // Add support for substituting '%HOME%' with the $HOME env variable
+    // Add support for substituting '%HOME%' with the $HOME env variable.
     $replacements["%HOME%"] = getenv("HOME");
 
-    // Process DCI_* variable substitution into test definition template
+    // Process DCI_* variable substitution into test definition template.
     $search = array_keys($replacements);
     $replace = array_values($replacements);
     $definition = $this->getDefinition();
@@ -306,10 +351,15 @@ class JobDefinition {
       $value = str_ireplace($search, $replace, $value);
     });
 
-    // Save our post-replacements job definition back to the object
+    // Save our post-replacements job definition back to the object.
     $this->setDefinition($definition);
   }
 
+  /**
+   * Parse build steps.
+   *
+   * @return array
+   */
   protected function parseBuildSteps() {
     $definition = $this->getDefinition();
     $build_steps = [];
@@ -326,6 +376,8 @@ class JobDefinition {
 
 
   /**
+   * Get preprocess plguin manager.
+   *
    * @return \DrupalCI\Plugin\PluginManager
    */
   protected function getPreprocessPluginManager() {
@@ -335,10 +387,4 @@ class JobDefinition {
     return $this->pluginManager;
   }
 
-
-
-  // Other potential methods for this class:
-  // insert build step before/after
-  // get/set DCI_parameters
-
-}
\ No newline at end of file
+}
