diff --git a/Sample/Multilayer/MultiLayer.cpp b/Sample/Multilayer/MultiLayer.cpp
index a678bb5c19ba743ae3e81da6b3db975bd5e3233d..9c453d7ed080ab21ba7c62606699c72040d5ee5e 100644
--- a/Sample/Multilayer/MultiLayer.cpp
+++ b/Sample/Multilayer/MultiLayer.cpp
@@ -109,9 +109,9 @@ std::vector<const INode*> MultiLayer::getChildren() const {
 
     for (size_t i = 0; i < N; ++i) {
         ret.push_back(m_layers[i]);
-        const LayerInterface* interface = MultiLayerUtils::LayerBottomInterface(*this, i);
-        if (interface)
-            ret.push_back(interface);
+        if (i == N - 1)
+            break;
+        ret.push_back(layerInterface(i));
     }
     return ret;
 }
diff --git a/Sample/Multilayer/MultiLayerUtils.cpp b/Sample/Multilayer/MultiLayerUtils.cpp
index b9923261d83a8e627e6b93a54cc8d993c849114f..e0af6a66084a89ac6daffb99a9af3a8c4b876dec 100644
--- a/Sample/Multilayer/MultiLayerUtils.cpp
+++ b/Sample/Multilayer/MultiLayerUtils.cpp
@@ -24,13 +24,6 @@ const LayerInterface* MultiLayerUtils::LayerTopInterface(const MultiLayer& multi
     return multilayer.layerInterface(i - 1);
 }
 
-const LayerInterface* MultiLayerUtils::LayerBottomInterface(const MultiLayer& multilayer,
-                                                            size_t i) {
-    if (i + 1 < multilayer.numberOfLayers())
-        return multilayer.layerInterface(i);
-    return nullptr;
-}
-
 const LayerRoughness* MultiLayerUtils::LayerTopRoughness(const MultiLayer& multilayer, size_t i) {
     if (i == 0)
         return nullptr;
diff --git a/Sample/Multilayer/MultiLayerUtils.h b/Sample/Multilayer/MultiLayerUtils.h
index 15ccbd0415578ca967a52280da971b19201f3bbc..f8081af204c4602970c4e4c96ed0f5d123c35e90 100644
--- a/Sample/Multilayer/MultiLayerUtils.h
+++ b/Sample/Multilayer/MultiLayerUtils.h
@@ -28,9 +28,6 @@ namespace MultiLayerUtils {
 //! Returns top interface of layer
 const LayerInterface* LayerTopInterface(const MultiLayer& multilayer, size_t i);
 
-//! Returns bottom interface of layer
-const LayerInterface* LayerBottomInterface(const MultiLayer& multilayer, size_t i);
-
 //! Returns top roughness of layer
 const LayerRoughness* LayerTopRoughness(const MultiLayer& multilayer, size_t i);
 
diff --git a/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp b/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
index 68042a7118e656f3fa5dabcc95dceeb6ed262f29..828ce5196cb2e51f5a61e20a24a2d3bea2f36b62 100644
--- a/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
+++ b/Tests/UnitTests/Core/Sample/MultiLayerTest.cpp
@@ -9,9 +9,6 @@
 #include "Sample/Slice/LayerRoughness.h"
 #include "Tests/GTestWrapper/google_test.h"
 
-using MultiLayerUtils::LayerBottomInterface;
-using MultiLayerUtils::LayerTopInterface;
-
 class MultiLayerTest : public ::testing::Test {
 protected:
     MultiLayerTest()
@@ -97,23 +94,6 @@ TEST_F(MultiLayerTest, LayerInterfaces) {
     const LayerInterface* interface2 = mLayer.layerInterface(2);
     EXPECT_TRUE(nullptr != interface2);
     EXPECT_EQ(nullptr, interface2->getRoughness());
-
-    // bottom interface
-    const LayerInterface* interfaceBottom = LayerBottomInterface(mLayer, 0);
-    EXPECT_TRUE(nullptr != interfaceBottom);
-    EXPECT_EQ(nullptr, interfaceBottom->getRoughness());
-
-    // top interface
-    const LayerInterface* interfaceTop = LayerTopInterface(mLayer, 3);
-    EXPECT_TRUE(nullptr != interfaceTop);
-    EXPECT_EQ(nullptr, interfaceTop->getRoughness());
-
-    // null interface
-    const LayerInterface* interfaceTopNull = LayerTopInterface(mLayer, 0);
-    EXPECT_TRUE(nullptr == interfaceTopNull);
-
-    const LayerInterface* interfaceBottomNull = LayerBottomInterface(mLayer, 3);
-    EXPECT_TRUE(nullptr == interfaceBottomNull);
 }
 
 TEST_F(MultiLayerTest, Clone) {
@@ -144,23 +124,6 @@ TEST_F(MultiLayerTest, Clone) {
     EXPECT_TRUE(nullptr != interface2);
     EXPECT_EQ(nullptr, interface2->getRoughness());
 
-    // top interface
-    const LayerInterface* interfaceBottom = LayerTopInterface(*mLayerClone, 1);
-    EXPECT_TRUE(nullptr != interfaceBottom);
-    EXPECT_EQ(nullptr, interfaceBottom->getRoughness());
-
-    // Bottom interface
-    const LayerInterface* interfaceTop = LayerBottomInterface(*mLayerClone, 2);
-    EXPECT_TRUE(nullptr != interfaceTop);
-    EXPECT_EQ(nullptr, interfaceTop->getRoughness());
-
-    // null interface
-    const LayerInterface* interfaceTopNull = LayerTopInterface(*mLayerClone, 0);
-    EXPECT_TRUE(nullptr == interfaceTopNull);
-
-    const LayerInterface* interfaceBottomNull = LayerBottomInterface(*mLayerClone, 3);
-    EXPECT_TRUE(nullptr == interfaceBottomNull);
-
     delete mLayerClone;
 }
 
diff --git a/auto/Wrap/doxygenSample.i b/auto/Wrap/doxygenSample.i
index 9ec8d63cbddce07566b5ffadde09430967afc4d8..f1d123315abea768fc99d3ddd50f4adddfc29857 100644
--- a/auto/Wrap/doxygenSample.i
+++ b/auto/Wrap/doxygenSample.i
@@ -7812,11 +7812,6 @@ Checks if all non-default materials in  materials are of the same type and retur
 Returns top interface of layer. 
 ";
 
-%feature("docstring")  MultiLayerUtils::LayerBottomInterface "const LayerInterface * MultiLayerUtils::LayerBottomInterface(const MultiLayer &multilayer, size_t i)
-
-Returns bottom interface of layer. 
-";
-
 %feature("docstring")  MultiLayerUtils::LayerTopRoughness "const LayerRoughness * MultiLayerUtils::LayerTopRoughness(const MultiLayer &multilayer, size_t i)
 
 Returns top roughness of layer.