diff --git a/app/workers/score_calculator_worker.rb b/app/workers/score_calculator_worker.rb
index 794b410b2567e51419b37d090016afd5f284c0e5..b0d02b1d31e877881c2888fca95a0993e2e9a763 100644
--- a/app/workers/score_calculator_worker.rb
+++ b/app/workers/score_calculator_worker.rb
@@ -26,22 +26,22 @@ class ScoreCalculatorWorker
 
     # range to 250 points, for normalized likes ( maxLikes/actualLike => [0..1] )
     score += divide_by_max(
-                            learning_object_repository.count_likes(object),
-                            learning_object_repository.max_likes,
+                            learning_object_repository.count('Likes', object),
+                            learning_object_repository.max('Likes'),
                             weights[:likes]
                           )
 
     # range to 200 points, for normalized views ( maxLikes/actualLike => [0..1] )
     score += divide_by_max(
-                            learning_object_repository.count_views(object),
-                            learning_object_repository.max_views,
+                            learning_object_repository.count('Views', object),
+                            learning_object_repository.max('Views'),
                             weights[:views]
                           )
 
     # downloads
     score += divide_by_max(
-                            learning_object_repository.count_downloads(object),
-                            learning_object_repository.max_downloads,
+                            learning_object_repository.count('Downloads', object),
+                            learning_object_repository.max('Downloads'),
                             weights[:downloads]
                           )
 
diff --git a/lib/orient_db/methods/countable_methods.rb b/lib/orient_db/methods/countable_methods.rb
index 484153798a32efc1373d6ad91dc962bcedc245ec..816d2548c7f0d2f72c28401b8c7923b520def0e0 100644
--- a/lib/orient_db/methods/countable_methods.rb
+++ b/lib/orient_db/methods/countable_methods.rb
@@ -19,6 +19,12 @@ module OrientDb
         get_in_edges_count edge_class, object.id
       end
 
+      def max(edge_class)
+        Rails.cache.fetch("max_#{edge_class}", expires_in: 6.hours) do
+          get_max_from_edge(edge_class, 'in')
+        end
+      end
+
       def get_max_from_edge(edge_class, type)
         max = connection.command "SELECT max(#{type}('#{edge_class}').size()) FROM LearningObject"
         max["result"][0]["max"]
@@ -26,4 +32,4 @@ module OrientDb
 
     end
   end
-end
\ No newline at end of file
+end