diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R
index ef9033a6676b28bbf9ca3be615466d6363d83c31..8660bce52947128fca619ed9ecad4d4d804c1b18 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R
@@ -21,38 +21,24 @@
 
 eval(expression({
 
-    assignInNs <- function(x, val) {
-        ns <- asNamespace("grDevices")
-        unlockBinding(x, ns)
-        assign(x, val, envir = ns, inherits = T)
-        lockBinding(x, ns)
-    }
-
     # This should be preffered way of starting the FastR java device.
     # For compatibility reasons, both X11 and awt end up calling C_X11.
-    # In the future, this function may support extra parameters like a
-    # reference to java 2D graphics object, which will be used for the drawing.
-    assignInNs('awt', function(width = NULL, height = NULL, graphicsObj = NULL) {
+    awt <- function(width = NULL, height = NULL, graphicsObj = NULL)
         invisible(.External2(grDevices:::C_X11, ".FASTR.AWT", width, height, graphicsObj))
-    })
 
     # Allows to get the SVG code from SVG device, it also closes the device,
     # but the contents are not saved to the given file.
-    assignInNs('svg.off', function(which = dev.cur()) {
+    svg.off <- function(which = dev.cur()) {
         if (which == 1) {
             stop("cannot shut down device 1 (the null device)")
         }
         .External(C_devoff, as.integer(-which))
-    })
+    }
 
     # Allows to get the SVG code from SVG device without closing it
+    # the symbol info should be constant
     svgStringSymbol <- list(name='svgstring')
-    assignInNs('svg.string', function() {
-        .External(svgStringSymbol)
-    })
-
-    # Adds help files for the new public functions
-    .fastr.addHelpPath('/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd')
+    svg.string <- function() .External(svgStringSymbol)
 
     # GnuR version only works with "X11cairo" device. Our version of savePlot
     # works with "awt" device and "X11cairo", which is for us only alias for
@@ -103,4 +89,13 @@ eval(expression({
 		grid:::grid.refresh()	
 	}
 
-}), asNamespace("grDevices"))
\ No newline at end of file
+}), asNamespace("grDevices"))
+
+# export new public functions
+exports <- asNamespace("grDevices")[[".__NAMESPACE__."]][['exports']]
+assign('svg.off', 'svg.off', envir = exports)
+assign('svg.string', 'svg.string', envir = exports)
+assign('awt', 'awt', envir = exports)
+
+# add help files for the new public functions
+.fastr.addHelpPath('/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd')
\ No newline at end of file