   Returns `{:ok, pid}` or `{:error, reason}`
   """
   @spec deploy(Map) :: :ok | {:error, String.t}
-  def deploy(options) do
+  def deploy(details) do
     Logger.info("Beginning Fleet deployment...")
-    unless options[:deployment_repo], do: raise "No deployment repo provided"
-
-    case DeploymentRepo.download(options.deployment_repo) do
-      :ok               -> start_deploy(options)
+    unless details[:deployment_repo], do: raise "No deployment repo provided"
+
+    case DeploymentRepo.download(details.deployment_repo) do
+      :ok               -> start_deploy(details)
       {:errors, reason} -> {:error, reason}
     end
   end
 
   @doc "Re-deployes the Dockerized app to a CoreOS cluster."
   @spec redeploy(Map) :: :ok | {:error, String.t}
-  def redeploy(options) do
+  def redeploy(details) do
     Logger.info("Beginnging Fleet re-deployment...")
-    start_deploy(options)
-  end
-
-  def create_cluster(options) do
-    if options[:product_cluster_etcd_token] == nil do
+    start_deploy(details)
+  end
+
+  def create_cluster(details) do
+    if details[:product_cluster_etcd_token] == nil do
       # legacy (no product deployment info)
-      DeploymentRepo.get_etcd_cluster(options.deployment_repo)
-    else
-      cluster = case EtcdCluster.create(options[:product_cluster_etcd_token]) do
+      DeploymentRepo.get_etcd_cluster(details.deployment_repo)
+    else
+      cluster = case EtcdCluster.create(details[:product_cluster_etcd_token]) do
         {:ok, etcd_cluster} -> etcd_cluster
         {:error, reason}    ->
           Logger.error("Failed to create etcd cluster:  #{reason}")

  end

  @doc false
  defp start_deploy(options) do
    deployment_repo = options.deployment_repo
    source_repo     = DeploymentRepo.get_source_repo(deployment_repo)
    cluster         = create_cluster(options)
    host_cnt        = if cluster, do: EtcdCluster.get_host_count(cluster), else: 0

    Logger.debug("Parsing units...")

  end

  @doc false
  defp configure_router(details, cluster, deployed_units) do
    if details[:openaperture_router] do
      case Router.validate_routing_details(details[:openaperture_router]) do
        :ok ->
          case update_router(details[:openaperture_router], cluster, deployed_units) do
            :ok -> :ok
            {:error, errors} ->
              {:error, "Router returned the following errors: #{JSON.encode!(errors)}"}
          end
        {:error, errors} ->
          {:error, "Routing details are broken: #{JSON.encode!(errors)}"}
      end
    else
      :ok
