diff --git a/lib/motion-loco/adapter.rb b/lib/motion-loco/adapter.rb
index <HASH>..<HASH> 100644
--- a/lib/motion-loco/adapter.rb
+++ b/lib/motion-loco/adapter.rb
@@ -91,7 +91,7 @@ module Loco
   private
     
     def load(type, records, data)
-      if records.is_a? Array
+      if records.is_a? RecordArray
         if data.is_a? Hash
           data = data[type.to_s.underscore.pluralize]
         end
diff --git a/lib/motion-loco/record_array.rb b/lib/motion-loco/record_array.rb
index <HASH>..<HASH> 100644
--- a/lib/motion-loco/record_array.rb
+++ b/lib/motion-loco/record_array.rb
@@ -2,20 +2,27 @@ motion_require 'observable'
 
 module Loco
   
-  class RecordArray < Array
+  class RecordArray
     include Observable
+    property :content
+    property :item_class
+    
+    def initialize(properties={})
+      super
+      self.content = Array.new
+      self
+    end
     
     def load(type, data)
-      self.removeAllObjects
+      self.content.removeAllObjects
       data.each do |item_data|
-        self.addObject(type.new(item_data))
+        self.content.addObject(type.new(item_data))
       end
       self
     end
     
-    def initialize(properties={})
-      self.init
-      self
+    def method_missing(method, *args, &block)
+      self.content.send(method, *args, &block)
     end
     
   end
Loco::RecordArray should be a model with an array as a property