diff --git a/include/aidge/operator/Gather.hpp b/include/aidge/operator/Gather.hpp
index 43077b73181c70d1a057c4f5af68b473c5540fa9..78557d49d5e35a6824b2e16d6f8dc2d5b520587c 100644
--- a/include/aidge/operator/Gather.hpp
+++ b/include/aidge/operator/Gather.hpp
@@ -32,7 +32,7 @@ enum class GatherAttr { Axis };
 class Gather_Op : public OperatorTensor,
                 public Registrable<Gather_Op,
                                    std::string,
-                                   std::unique_ptr<OperatorImpl>(const Gather_Op&)>,
+                                   std::shared_ptr<OperatorImpl>(const Gather_Op&)>,
                 public StaticAttributes<GatherAttr, std::int64_t> {
 
 public:
diff --git a/include/aidge/operator/Slice.hpp b/include/aidge/operator/Slice.hpp
index e71eaf40f87a34d5f10dd2ce72b28fac0928aabe..186c60ffa8f1062ac1eaaf744506b628fb3b247c 100644
--- a/include/aidge/operator/Slice.hpp
+++ b/include/aidge/operator/Slice.hpp
@@ -25,7 +25,7 @@
 namespace Aidge {
 class Slice_Op
     : public OperatorTensor,
-      public Registrable<Slice_Op, std::string, std::unique_ptr<OperatorImpl>(const Slice_Op &)>{
+      public Registrable<Slice_Op, std::string, std::shared_ptr<OperatorImpl>(const Slice_Op &)>{
 public:
     static const std::string Type;