diff --git a/lib/frozen_record/backends.rb b/lib/frozen_record/backends.rb
index 7538598..a8ef5ba 100644
--- a/lib/frozen_record/backends.rb
+++ b/lib/frozen_record/backends.rb
@@ -4,5 +4,6 @@ module FrozenRecord
   module Backends
     autoload :Json, 'frozen_record/backends/json'
     autoload :Yaml, 'frozen_record/backends/yaml'
+    autoload :Csv, 'frozen_record/backends/csv'
   end
 end
diff --git a/lib/frozen_record/backends/csv.rb b/lib/frozen_record/backends/csv.rb
new file mode 100644
index 0000000..22d1fdd
--- /dev/null
+++ b/lib/frozen_record/backends/csv.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+require 'csv'
+
+module FrozenRecord
+  module Backends
+    module Csv
+      extend self
+
+      def filename(model_name)
+        "#{model_name.underscore.pluralize}.csv"
+      end
+
+      def load(file_path)
+        csv_data = File.read(file_path)
+        CSV.parse(csv_data, headers: true, nil_value: '').map.with_index do |row, index|
+          row.to_h.merge("position" => index)
+        end
+      end
+    end
+  end
+end
diff --git a/spec/fixtures/employees.csv b/spec/fixtures/employees.csv
new file mode 100644
index 0000000..d62370b
--- /dev/null
+++ b/spec/fixtures/employees.csv
@@ -0,0 +1,3 @@
+"name","title"
+"john doe","Engineer"
+"tom doe","Manager"
diff --git a/spec/frozen_record_spec.rb b/spec/frozen_record_spec.rb
index 6377384..24e6b7e 100644
--- a/spec/frozen_record_spec.rb
+++ b/spec/frozen_record_spec.rb
@@ -118,11 +118,15 @@
       expect(country.capital).to be == 'Ottawa'
     end
 
-    it 'loads records with a custom backend' do
+    it 'loads records with a custom backend json' do
       animal = Animal.first
       expect(animal.name).to be == 'cat'
     end
 
+    it 'loads records with a custom backend csv' do
+      employee = Employee.first
+      expect(employee.name).to be == 'john doe'
+    end
   end
 
   describe '#==' do
diff --git a/spec/support/employee.rb b/spec/support/employee.rb
new file mode 100644
index 0000000..067c095
--- /dev/null
+++ b/spec/support/employee.rb
@@ -0,0 +1,3 @@
+class Employee < FrozenRecord::Base
+  self.backend = FrozenRecord::Backends::Csv
+end