diff --git a/lib/parse/pointer.rb b/lib/parse/pointer.rb
index <HASH>..<HASH> 100644
--- a/lib/parse/pointer.rb
+++ b/lib/parse/pointer.rb
@@ -17,6 +17,11 @@ module Parse
       @object ||= pointed_parse_class.find_by_id @raw_hash['objectId']
     end
 
+    # TODO: should be refactored
+    def load!
+      @object ||= pointed_parse_class.find_by_id! @raw_hash['objectId']
+    end
+
     def to_h
       {
         "__type" => "Pointer",
diff --git a/lib/parse/relation.rb b/lib/parse/relation.rb
index <HASH>..<HASH> 100644
--- a/lib/parse/relation.rb
+++ b/lib/parse/relation.rb
@@ -37,6 +37,19 @@ module Parse
       @objects
     end
 
+    # TODO should be refactored
+    def load! parse_client=Parse::Client.default
+      unless @objects
+        pointer = @parent_object.pointer
+        key = @column_name
+        related_class = Parse::Object @raw_hash['className']
+        @objects = related_class.find! :where => proc {
+          related_to key, pointer
+        }
+      end
+      @objects
+    end
+
     def changed?
       (@added_pointers.size + @removed_pointers.size) != 0
     end
@@ -61,7 +74,6 @@ module Parse
     end
 
     def to_json *args
-p to_h
       to_h.to_json
     end
   end
load! uses teh master key