diff --git a/src/components/gui/gui.jsx b/src/components/gui/gui.jsx
index c929d9b4ee45d682d5b5536521eb0daf01265d18..77cc6b8d338a7a1e0cb6327bbc8ecabe22e80781 100644
--- a/src/components/gui/gui.jsx
+++ b/src/components/gui/gui.jsx
@@ -1,9 +1,6 @@
-const defaultsDeep = require('lodash.defaultsdeep');
 const React = require('react');
 const VM = require('scratch-vm');
 
-const shapeFromPropTypes = require('../../lib/shape-from-prop-types');
-
 const Blocks = require('../../containers/blocks.jsx');
 const GreenFlag = require('../../containers/green-flag.jsx');
 const TargetPane = require('../../containers/target-pane.jsx');
@@ -13,24 +10,15 @@ const StopAll = require('../../containers/stop-all.jsx');
 const Box = require('../box/box.jsx');
 
 const GUIComponent = props => {
-    let {
+    const {
         basePath,
-        blocksProps,
         children,
-        greenFlagProps,
-        targetPaneProps,
-        stageProps,
-        stopAllProps,
-        vm
+        vm,
+        ...componentProps
     } = props;
-    blocksProps = defaultsDeep({}, blocksProps, {
-        options: {
-            media: `${basePath}static/blocks-media/`
-        }
-    });
     if (children) {
         return (
-            <Box>
+            <Box {...componentProps}>
                 {children}
             </Box>
         );
@@ -40,6 +28,7 @@ const GUIComponent = props => {
             grow={1}
             height="100%"
             style={{overflow: 'hidden'}}
+            {...componentProps}
         >
             <Box
                 direction="column"
@@ -55,8 +44,10 @@ const GUIComponent = props => {
                 />
                 <Blocks
                     grow={1}
+                    options={{
+                        media: `${basePath}static/blocks-media/`
+                    }}
                     vm={vm}
-                    {...blocksProps}
                 />
             </Box>
             <Box
@@ -72,24 +63,16 @@ const GUIComponent = props => {
                         marginTop: 8
                     }}
                 >
-                    <GreenFlag
-                        vm={vm}
-                        {...greenFlagProps}
-                    />
-                    <StopAll
-                        vm={vm}
-                        {...stopAllProps}
-                    />
+                    <GreenFlag vm={vm} />
+                    <StopAll vm={vm} />
                 </Box>
                 <Stage
                     shrink={0}
                     vm={vm}
-                    {...stageProps}
                 />
                 <TargetPane
                     grow={1}
                     vm={vm}
-                    {...targetPaneProps}
                 />
             </Box>
         </Box>
@@ -97,21 +80,11 @@ const GUIComponent = props => {
 };
 GUIComponent.propTypes = {
     basePath: React.PropTypes.string,
-    blocksProps: shapeFromPropTypes(Blocks.propTypes, {omit: ['vm']}),
     children: React.PropTypes.node,
-    greenFlagProps: shapeFromPropTypes(GreenFlag.propTypes, {omit: ['vm']}),
-    stageProps: shapeFromPropTypes(Stage.propTypes, {omit: ['vm']}),
-    stopAllProps: shapeFromPropTypes(StopAll.propTypes, {omit: ['vm']}),
-    targetPaneProps: shapeFromPropTypes(TargetPane.propTypes, {omit: ['vm']}),
     vm: React.PropTypes.instanceOf(VM)
 };
 GUIComponent.defaultProps = {
     basePath: '/',
-    blocksProps: {},
-    greenFlagProps: {},
-    targetPaneProps: {},
-    stageProps: {},
-    stopAllProps: {},
     vm: new VM()
 };
 module.exports = GUIComponent;
diff --git a/src/lib/shape-from-prop-types.js b/src/lib/shape-from-prop-types.js
deleted file mode 100644
index 2d2415e1c84df4717b61aeb3c153bdb8a6edd3fc..0000000000000000000000000000000000000000
--- a/src/lib/shape-from-prop-types.js
+++ /dev/null
@@ -1,13 +0,0 @@
-const React = require('react');
-
-module.exports = function shapeFromPropTypes (propTypes, opts) {
-    opts = Object.assign({}, opts, {omit: []});
-    const shape = Object
-        .keys(propTypes)
-        .filter(key => opts.omit.indexOf(key) !== -1)
-        .reduce((newPropTypes, key) => {
-            newPropTypes[key] = propTypes[key];
-            return newPropTypes;
-        }, {});
-    return React.PropTypes.shape(shape);
-};