diff --git a/Src/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp b/Src/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp
index 535871d74d6a654e9c8b01fadc3add9317885382..8a5e813f26272af79c0ee873fb835fc33be98970 100644
--- a/Src/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp
+++ b/Src/GroupTree/StarPUUtils/FStarPUFmmPriorities.hpp
@@ -377,23 +377,13 @@ FStarPUFmmPriorities FStarPUFmmPriorities::controller;
 
 #elif defined(SCALFMM_STARPU_USE_PRIO)// STARPU_SUPPORT_SCHEDULER
 
-class FStarPUFmmPriorities{
-    static FStarPUFmmPriorities controller;
+#include "FOmpPriorities.hpp"
 
-    enum Priorities{
-        Prio_P2M = 9 - 5,
-        Prio_M2M = 8 - 5,
-        Prio_M2L_High = 7 - 5,
-        Prio_L2L = 6 - 5,
-        Prio_P2P_Big = 5 - 5,
-        Prio_M2L = 4 - 5,
-        Prio_L2P = 3 - 5,
-        Prio_P2P_Small = 2 - 5
-    };
-
-    int treeHeight;
+class FStarPUFmmPriorities {
+    static FStarPUFmmPriorities controller;
+    FOmpPriorities ompPrio;
 
-    FStarPUFmmPriorities() : treeHeight(0){
+    FStarPUFmmPriorities() : ompPrio(0){
     }
 
 public:
@@ -404,38 +394,38 @@ public:
 
     void init(struct starpu_conf* /*conf*/, const int inTreeHeight,
               FStarPUKernelCapacities* /*inCapacities*/){
-        treeHeight = inTreeHeight;
+        ompPrio = FOmpPriorities(inTreeHeight);
     }
 
     int getInsertionPosP2M() const {
-        return Prio_P2M;
+        return ompPrio.getInsertionPosP2M();
     }
-    int getInsertionPosM2M(const int /*inLevel*/) const {
-        return Prio_M2M;
+    int getInsertionPosM2M(const int inLevel) const {
+        return ompPrio.getInsertionPosM2M(inLevel);
     }
     int getInsertionPosP2M(bool /*willBeSend*/) const {
-        return Prio_P2M;
+        return ompPrio.getInsertionPosP2M();
     }
-    int getInsertionPosM2M(const int /*inLevel*/, bool /*willBeSend*/) const {
-        return Prio_M2M;
+    int getInsertionPosM2M(const int inLevel, bool /*willBeSend*/) const {
+        return ompPrio.getInsertionPosM2M(inLevel);
     }
     int getInsertionPosM2L(const int inLevel) const {
-        return inLevel == treeHeight-1 ? Prio_M2L: Prio_M2L_High;
+        return ompPrio.getInsertionPosM2L(inLevel);
     }
     int getInsertionPosM2LExtern(const int inLevel) const {
-        return inLevel == treeHeight-1 ? Prio_M2L : Prio_M2L_High;
+        return ompPrio.getInsertionPosM2LExtern(inLevel);
     }
-    int getInsertionPosL2L(const int /*inLevel*/) const {
-        return Prio_L2L;
+    int getInsertionPosL2L(const int inLevel) const {
+        return ompPrio.getInsertionPosL2L(inLevel);
     }
     int getInsertionPosL2P() const {
-        return Prio_L2P;
+        return ompPrio.getInsertionPosL2P();
     }
     int getInsertionPosP2P() const {
-        return Prio_P2P_Big;
+        return ompPrio.getInsertionPosP2P();
     }
     int getInsertionPosP2PExtern() const {
-        return Prio_P2P_Small;
+        return ompPrio.getInsertionPosP2PExtern();
     }
 };