diff --git a/include/aidge/operator/ILayerNorm.hpp b/include/aidge/operator/ILayerNorm.hpp
index 9eec045922643d9e0d1ae80e66e8ab61436b3abd..f660cc64eb65770cc6cf5335d9c070b155d03c0f 100644
--- a/include/aidge/operator/ILayerNorm.hpp
+++ b/include/aidge/operator/ILayerNorm.hpp
@@ -28,7 +28,7 @@
 namespace Aidge {
 
 class ILayerNorm_Op : public OperatorTensor,
-    public Registrable<ILayerNorm_Op, std::string, std::shared_ptr<OperatorImpl>(const ILayerNorm_Op&)> {
+    public Registrable<ILayerNorm_Op, std::string, std::function<std::shared_ptr<OperatorImpl>(const ILayerNorm_Op&)>> {
 public:
     static const std::string Type;
 
@@ -63,6 +63,7 @@ public:
     bool forwardDims(bool allowDataDependency = false) override final;
 
     void setBackend(const std::string& name, DeviceIdx_t device = 0) override final;
+    std::set<std::string> getAvailableBackends() const override;
 
     static const std::vector<std::string> getInputsName(){
         return {"data_input", "weight", "bias"};
diff --git a/src/operator/ILayerNorm.cpp b/src/operator/ILayerNorm.cpp
index dafe7ed0fcea7164c085c1f1d2913a7f461be12f..daa7ecf86b7ea9a9b10b962d356581f926e92eed 100644
--- a/src/operator/ILayerNorm.cpp
+++ b/src/operator/ILayerNorm.cpp
@@ -49,4 +49,8 @@ void Aidge::ILayerNorm_Op::setBackend(const std::string& name, DeviceIdx_t devic
     mOutputs[0]->setBackend(name, device);
     getInput(1)->setBackend(name, device);
     getInput(2)->setBackend(name, device);
-}
\ No newline at end of file
+}
+
+std::set<std::string> Aidge::ILayerNorm_Op::getAvailableBackends() const {
+    return Registrar<ILayerNorm_Op>::getKeys();
+}