diff --git a/src/DrupalCI/Plugin/BuildSteps/generic/Composer.php b/src/DrupalCI/Plugin/BuildSteps/generic/Composer.php
index 36e1a56..b962dd4 100644
--- a/src/DrupalCI/Plugin/BuildSteps/generic/Composer.php
+++ b/src/DrupalCI/Plugin/BuildSteps/generic/Composer.php
@@ -18,13 +18,12 @@ class Composer extends ContainerCommand {
    * {@inheritdoc}
    */
   public function run($input, $data) {
-    // @TODO http://stackoverflow.com/a/25208897/308851
-    $cmd = $this->buildComposerCommand($input);
+    $cmd = $this->buildComposerCommand($input, $data);
     parent::run($cmd);
   }
 
-  protected function buildComposerCommand($input) {
-    // TODO: Code to interpret the input and output an actual valid composer command
+  protected function buildComposerCommand($input, $data) {
+    return "composer.phar --working-dir core --prefer-dist $data";
   }
 
 }
diff --git a/src/DrupalCI/Plugin/Preprocess/definition/DrupalInstall.php b/src/DrupalCI/Plugin/Preprocess/definition/DrupalInstall.php
new file mode 100644
index 0000000..ee73365
--- /dev/null
+++ b/src/DrupalCI/Plugin/Preprocess/definition/DrupalInstall.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * @file
+ * Contains \DrupalCI\Plugin\Preprocess\definition\DrupalInstall
+ */
+
+namespace DrupalCI\Plugin\Preprocess\definition;
+
+/**
+ * @PluginID("drupalinstall")
+ */
+class DrupalInstall {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function process(array &$definition, $value) {
+    $composer_commands = array('install', 'update');
+    if (in_array($value, $composer_commands)) {
+      $definition['install']['composer'] = $value;
+    }
+    else {
+      $definition['install']['composer'] = 'install';
+    }
+  }
+
+}
