diff --git a/app/controllers/hosts_controller.rb b/app/controllers/hosts_controller.rb
new file mode 100644
index 0000000..84b9fc1
--- /dev/null
+++ b/app/controllers/hosts_controller.rb
@@ -0,0 +1,22 @@
+class HostsController < ApplicationController
+#  before_action :fetch_params, only: :create
+
+  def new
+    @host = Host.new
+  end
+
+  def create
+    @host = Host.new(fetch_params)
+    if @host.save
+      redirect_to root_path
+    else
+      render :new
+    end
+  end
+
+  private
+
+  def fetch_params
+    params.require(:host).permit(:name, :fqdn, :port, :password)
+  end
+end
diff --git a/app/views/clients/index.html.erb b/app/views/clients/index.html.erb
index 3dc1fb8..ff6dbba 100644
--- a/app/views/clients/index.html.erb
+++ b/app/views/clients/index.html.erb
@@ -1,23 +1,27 @@
+
+  <%= link_to 'New Client', new_host_path, class: 'btn btn-primary', role: 'button' %>
+
+
 My Hosts
 
 
   
     
       
         | Name | 
         Uname | 
         Active Jobs | 
         Last Backup | 
         FileRetention (days) | 
         JobRetention (days) | 
         Space Used | 
         File count | 
         AutoPrune | 
       
     
 
     
       <%= render partial: 'client', collection: @clients %>
     
   
  
diff --git a/app/views/hosts/_form.html.erb b/app/views/hosts/_form.html.erb
new file mode 100644
index 0000000..9558c57
--- /dev/null
+++ b/app/views/hosts/_form.html.erb
@@ -0,0 +1,13 @@
+<%= bootstrap_form_for(@host) do |f| %>
+  
+  <%= f.text_field :name %>
+  <%= f.text_field :password %>
+  <%= f.number_field :port %>
+  <%= f.text_field :fqdn %>
+  
+
+
+  
+    <%= f.submit %>
+  
+<% end %>
diff --git a/app/views/hosts/new.html.erb b/app/views/hosts/new.html.erb
new file mode 100644
index 0000000..b372286
--- /dev/null
+++ b/app/views/hosts/new.html.erb
@@ -0,0 +1,5 @@
+New Host
+
+<%= render 'form' %>
+
+<%= link_to 'Back', clients_path %>
diff --git a/config/routes.rb b/config/routes.rb
index d56c812..c624f02 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,5 +1,6 @@
 Rails.application.routes.draw do
   resources :clients, only: [:index, :show]
+  resources :hosts, only: [:new, :create]
 
   root 'clients#index'
 end
diff --git a/spec/controllers/hosts_controller_spec.rb b/spec/controllers/hosts_controller_spec.rb
new file mode 100644
index 0000000..b3580ff
--- /dev/null
+++ b/spec/controllers/hosts_controller_spec.rb
@@ -0,0 +1,55 @@
+require 'spec_helper'
+
+describe HostsController do
+  describe 'GET #new' do
+    before { get :new }
+
+    it 'initializes a host' do
+      expect(assigns(:host)).to be
+    end
+
+    it 'renders' do
+      expect(response).to render_template(:new)
+    end
+  end
+
+  describe 'POST #create' do
+    context 'with valid params' do
+      let(:params) do
+        {
+          host: FactoryGirl.build(:host).attributes.symbolize_keys.
+            slice(:password, :name, :fqdn, :port)
+        }
+      end
+
+      it 'creates the host' do
+        expect { post :create, params }.
+          to change { Host.count }.by(1)
+      end
+
+      it 'redirects to root' do
+        post :create, params
+        expect(response).to redirect_to(host_path(Host.last))
+      end
+    end
+
+    context 'with invalid params' do
+      let(:params) do
+        {
+          host: FactoryGirl.build(:host).attributes.symbolize_keys.
+            slice(:name, :fqdn, :port)
+        }
+      end
+
+      before { post :create, params }
+
+      it 'initializes a host with errors' do
+        expect(assigns(:host)).to be
+      end
+
+      it 'renders :new' do
+        expect(response).to render_template(:new)
+      end
+    end
+  end
+end
diff --git a/spec/routing/host_routing_spec.rb b/spec/routing/host_routing_spec.rb
new file mode 100644
index 0000000..eee61ba
--- /dev/null
+++ b/spec/routing/host_routing_spec.rb
@@ -0,0 +1,11 @@
+require 'spec_helper'
+
+describe HostsController do
+  it 'routes GET /hosts/new' do
+    expect(get('/hosts/new')).to route_to( { controller: 'hosts', action: 'new' })
+  end
+
+  it 'routes POST /hosts' do
+    expect(post('/hosts')).to route_to( { controller: 'hosts', action: 'create' })
+  end
+end