diff --git a/app/builders/learning_object/attachment_builder.rb b/app/builders/learning_object/attachment_builder.rb
new file mode 100644
index 0000000000000000000000000000000000000000..3f6421ee32a8a13341db1b5fcaec5577c8be2049
--- /dev/null
+++ b/app/builders/learning_object/attachment_builder.rb
@@ -0,0 +1,30 @@
+module LearningObject
+  class AttachmentBuilder < ::Builder
+
+    ##disable method
+    # build attachments with id's is out of scope.
+    def self.build(objects = [])
+      raise NotImplementedError, 'LearningObject::AttachmentBuilder#build is out of scope.'
+    end
+
+    def self.build_from_orientdb(args = {})
+      build_from_cache args do
+        ::LearningObject::Attachment.new(args)
+      end
+    end
+
+    private
+
+    def self.build_from_cache(args={})
+      object = nil
+
+      unless args.nil? || !block_given?
+        # cache object when build
+        object = Rails.cache.fetch(cache_key(args['id'], args['link']), expires_in: 12.hours) { yield }
+      end
+
+      object
+    end
+
+  end
+end
\ No newline at end of file
diff --git a/app/models/learning_object/attachment.rb b/app/models/learning_object/attachment.rb
index a40cb33563da7848a5e7e0344c42ae88da195f55..1aff7410484096c1d5a0551e2b2e897c92bb3ce8 100644
--- a/app/models/learning_object/attachment.rb
+++ b/app/models/learning_object/attachment.rb
@@ -1,4 +1,6 @@
 class LearningObject::Attachment
   include ActiveModel::Model
+
+  #this attributes mirror Dspace bitstream values
   attr_accessor :id, :name, :link, :retrieve_link, :description, :format, :mime_type, :size
 end