diff --git a/rocolib/api/components/Component.py b/rocolib/api/components/Component.py
index 9776246ff74f691f781c02462fa8dba858c1e484..4b34101f310163c3c3ac7c807ecd4b3d5c74eb95 100644
--- a/rocolib/api/components/Component.py
+++ b/rocolib/api/components/Component.py
@@ -13,7 +13,7 @@ from rocolib.api.Function import YamlFunction
 from rocolib.utils.utils import prefix as prefixString
 from rocolib.utils.utils import tryImport
 from rocolib.utils.nx2go import GraphVisualization as gv
-from rocolib.library import getComponent
+from rocolib.library import getComponent, save
 from dash import html, dcc
 
 
@@ -60,6 +60,9 @@ class Component(Parameterized):
         self.predefine()
         self.define()
 
+    def toLibrary(self, lib=None):
+        save(self, lib)
+
     def fromYaml(self, filename):
         with open(filename, 'r') as fd:
             definition = yaml.safe_load(fd)
diff --git a/rocolib/builders/ESPSegBuilder.py b/rocolib/builders/ESPSegBuilder.py
index f7899bc49bd2dbc296b0b1c3c26c4d95b0ed6c87..ee7f796d442c2b12fe8a04a3b4654952179268cf 100644
--- a/rocolib/builders/ESPSegBuilder.py
+++ b/rocolib/builders/ESPSegBuilder.py
@@ -1,6 +1,5 @@
 from rocolib.library import getComponent
 from rocolib.api.components.Component import newComponent
-from rocolib.library import save
 from rocolib.api.Function import Function
 
 c = newComponent("ESPSeg")
@@ -116,4 +115,4 @@ c.addConnection(("left", "face0"),
 c.addConnection(("brain", "face1"),
                 ("sheath", "face1"), copyDecorations=True, transform=False)
 
-save(c, True)
+c.toLibrary(True)
diff --git a/rocolib/builders/MountedBrainsBuilder.py b/rocolib/builders/MountedBrainsBuilder.py
index 5983744f121694b71a2b3e8d21bb3ec9433ae6a7..b6d35135f3793eecad3247f5776f4b09f3f4c91c 100644
--- a/rocolib/builders/MountedBrainsBuilder.py
+++ b/rocolib/builders/MountedBrainsBuilder.py
@@ -1,5 +1,4 @@
 from rocolib.api.components.Component import newComponent
-from rocolib.library import save
 from rocolib.api.Function import Function
 
 
@@ -27,4 +26,4 @@ c.addConnection(("beam", "face1"),
 
 c.inheritAllInterfaces("beam", prefix=None)
 
-save(c, True)
+c.toLibrary(True)
diff --git a/rocolib/builders/MountedServoBuilder.py b/rocolib/builders/MountedServoBuilder.py
index 82e784d492ff2bbc96fba645476db2d09bf84f83..f373a679d6e07ce5ed7c88d03a33e376c95de6a4 100644
--- a/rocolib/builders/MountedServoBuilder.py
+++ b/rocolib/builders/MountedServoBuilder.py
@@ -1,5 +1,4 @@
 from rocolib.api.components.Component import newComponent
-from rocolib.library import save
 from rocolib.api.Function import Function
 
 c = newComponent("MountedServo")
@@ -12,4 +11,4 @@ c.inheritAllInterfaces("servo", prefix=None)
 c.addConnection(("mount", "mount.decoration"),
                 ("servo", "mount"))
 
-save(c, True)
+c.toLibrary(True)
diff --git a/rocolib/builders/PaperbotBuilder.py b/rocolib/builders/PaperbotBuilder.py
index 85e9f6c4b94ce3879d104fd5a5eb28bf80dfa8dc..490242a346de506714979ba316096f134d69e874 100644
--- a/rocolib/builders/PaperbotBuilder.py
+++ b/rocolib/builders/PaperbotBuilder.py
@@ -1,5 +1,4 @@
 from rocolib.api.components.Component import newComponent
-from rocolib.library import save
 
 
 c = newComponent("Paperbot")
@@ -9,4 +8,4 @@ c.addParameter("height", 25, paramType="length", minValue=20)
 
 c.addSubcomponent("paperbot", "ESPSeg", inherit="length width height battery tire_thickness".split(), prefix=None)
 
-save(c, True)
+c.toLibrary(True)
diff --git a/rocolib/builders/ServoMountBuilder.py b/rocolib/builders/ServoMountBuilder.py
index 6bce1cc6cd61fb74376c8a8a167641a6ca61d42c..0ccd12c96d51faf7e4a420169368969541360eb4 100644
--- a/rocolib/builders/ServoMountBuilder.py
+++ b/rocolib/builders/ServoMountBuilder.py
@@ -1,6 +1,5 @@
 from rocolib.library import getComponent
 from rocolib.api.components.Component import newComponent
-from rocolib.library import save
 from rocolib.api.Function import Function
 
 c = newComponent("ServoMount")
@@ -29,4 +28,4 @@ c.addConnection(("beam", "face0"),
                 ("mount", "decoration"),
                 mode="hole", offset=Function(params="offset"))
 
-save(c, True)
+c.toLibrary(True)
diff --git a/rocolib/builders/WheelBuilder.py b/rocolib/builders/WheelBuilder.py
index e735fd092d0f521066f59856e56e446d2f777395..b5dfa34edfc33dba3c499b7263fda26de5c2157c 100644
--- a/rocolib/builders/WheelBuilder.py
+++ b/rocolib/builders/WheelBuilder.py
@@ -1,5 +1,4 @@
 from rocolib.api.components.Component import newComponent
-from rocolib.library import save
 from rocolib.api.Function import Function
 
 c = newComponent("Wheel")
@@ -12,4 +11,4 @@ c.inheritAllInterfaces("drive", prefix=None)
 c.addConnection(("drive", "horn"),
                 ("tire", "face"), copyDecorations=True)
 
-save(c, True)
+c.toLibrary(True)