diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000000000000000000000000000000000000..99670bfe0d531803de85c396fed45d3cd9df08d6
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,3 @@
+{
+  "plugins": ["transform-object-rest-spread"]
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index e07200be56549d03b99c8892b7fcd8c5778bca92..6df23b381043119e1ddc0c6fd9fdb2d897ecbcfc 100644
--- a/package.json
+++ b/package.json
@@ -33,5 +33,8 @@
     "uglifyjs-webpack-plugin": "^1.0.1",
     "webpack": "^3.8.1",
     "webpack-dev-server": "^2.9.3"
+  },
+  "devDependencies": {
+    "babel-plugin-transform-object-rest-spread": "^6.26.0"
   }
 }
diff --git a/src/components/Button.js b/src/components/Button.js
index 8ba66db3390b58d6c0b730b919ee51638cd222ea..1ecc58ac2debd6cb4776d93ee05ec7633fa93f40 100644
--- a/src/components/Button.js
+++ b/src/components/Button.js
@@ -1,9 +1,13 @@
 import m from "mithril";
 import { Button } from "polythene-mithril";
-import "polythene-css"
+import "polythene-css";
 
-const ButtonComponent = () => {
-    return Button;
+const defaultProps = {
+    element: 'button',
+}
+
+const ButtonComponent = props => {
+    return m(Button, {...defaultProps, ...props});
 }
 
 export default ButtonComponent;
\ No newline at end of file
diff --git a/src/views/studydocs/studydocList.js b/src/views/studydocs/studydocList.js
index 19294621f2485147e48a86f1be29d230bb6e2a7d..5bf02bcf9e4dda82601aa8b38d091d48d2905752 100644
--- a/src/views/studydocs/studydocList.js
+++ b/src/views/studydocs/studydocList.js
@@ -38,7 +38,7 @@ export default class studydocList {
         },
       }, [
         m('input', { type: 'text', oninput: m.withAttr('value', (value) => { this.search = value; }) }, ''),
-        m(Button, { label: 'Search', type: 'submit' }),
+        Button({ label: 'Search' }),
       ]),
       m('button', { onclick: () => m.route.set('/studydocuments/new') }, 'add new'),
       m('table', [