diff --git a/app/controllers/cms/image_controller.rb b/app/controllers/cms/image_controller.rb
index 81470bf..ef35ee6 100644
--- a/app/controllers/cms/image_controller.rb
+++ b/app/controllers/cms/image_controller.rb
@@ -3,12 +3,26 @@ module Cms
   class ImageController < ApplicationController
 
     @@root = "app/assets/images/cms/"
-    @@files = Dir.new(Rails.root + @@root).children
+    @@files = Set.new Dir.new(Rails.root + @@root).children
 
     def index
       @files = files
     end
 
+    def new
+    end
+
+    def create
+      io = params['image_file']
+      ending = io.original_filename.split("/").last.split(".").last
+      filename = params['filename'] + "." + ending
+      File.open(Rails.root.join('app/assets/images/cms', filename), "wb") do |f|
+        f.write io.read
+      end
+      @@files << filename
+      redirect_to cms_image_index_path
+    end
+
     private
 
     def files
diff --git a/app/views/cms/image/index.haml b/app/views/cms/image/index.haml
index 8cf6d9a..766ea56 100644
--- a/app/views/cms/image/index.haml
+++ b/app/views/cms/image/index.haml
@@ -1,3 +1,7 @@
+%section
+  %a.inline-block.rounded.border.border-indigo-600.bg-indigo-600.px-12.py-3.text-sm.font-medium.text-white.hover:bg-transparent.hover:text-indigo-600.focus:outline-none.focus:ring.active:text-indigo-500{:href => new_cms_image_path}
+    Add Image
+
 .grid.grid-cols-6.gap-4.m-8
   -@files.each do |file|
     .relative.block.border.border-gray-100
@@ -9,7 +13,7 @@
       .p-6
         %strong.inline-block.bg-yellow-400.px-3.py-1.text-xs.font-medium
           New
-        %h3.mt-4.text-lg.font-bold= file
+        %h3.mt-4.text-lg.font-bold= file.split(".").first
         %p.mt-2.text-sm.text-gray-700 $14.99
         %button.mt-4.block.w-full.rounded-sm.bg-yellow-500.p-4.text-sm.font-medium{:type => "button"}
           Add to Cart
diff --git a/app/views/cms/image/new.haml b/app/views/cms/image/new.haml
new file mode 100644
index 0000000..2638c3d
--- /dev/null
+++ b/app/views/cms/image/new.haml
@@ -0,0 +1,4 @@
+= form_tag({action: :create}, multipart: true) do
+  = text_field_tag 'filename'
+  = file_field_tag 'image_file'
+  = submit_tag 'Submit'
diff --git a/spec/helpers/image_helper_spec.rb b/spec/helpers/image_helper_spec.rb
new file mode 100644
index 0000000..d8f3a93
--- /dev/null
+++ b/spec/helpers/image_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'rails_helper'
+
+# Specs in this file have access to a helper object that includes
+# the ImageHelper. For example:
+#
+# describe ImageHelper do
+#   describe "string concat" do
+#     it "concats two strings with spaces" do
+#       expect(helper.concat_strings("this","that")).to eq("this that")
+#     end
+#   end
+# end
+RSpec.describe ImageHelper, type: :helper do
+  pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/requests/image_spec.rb b/spec/requests/image_spec.rb
new file mode 100644
index 0000000..090d0f0
--- /dev/null
+++ b/spec/requests/image_spec.rb
@@ -0,0 +1,7 @@
+require 'rails_helper'
+
+RSpec.describe "Images", type: :request do
+  describe "GET /index" do
+    pending "add some examples (or delete) #{__FILE__}"
+  end
+end