diff --git a/ma-impl.sublime-workspace b/ma-impl.sublime-workspace
index 2a6836816bbad9941bce07496c80e98ea9e1a1b5..bcf2ba250998973e5303cc6cf25e210d4d7d7769 100644
--- a/ma-impl.sublime-workspace
+++ b/ma-impl.sublime-workspace
@@ -275,30 +275,6 @@
 	},
 	"buffers":
 	[
-		{
-			"file": "vipra-ui/app/routes/words/show.js",
-			"settings":
-			{
-				"buffer_size": 178,
-				"line_ending": "Unix"
-			}
-		},
-		{
-			"file": "vipra-ui/ember-cli-build.js",
-			"settings":
-			{
-				"buffer_size": 881,
-				"line_ending": "Unix"
-			}
-		},
-		{
-			"file": "vipra-ui/app/templates/index.hbs",
-			"settings":
-			{
-				"buffer_size": 145,
-				"line_ending": "Unix"
-			}
-		}
 	],
 	"build_system": "",
 	"build_system_choices":
@@ -477,24 +453,18 @@
 	},
 	"expanded_folders":
 	[
-		"/home/eike/repos/master/ma-impl",
-		"/home/eike/repos/master/ma-impl/vipra-ui",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/components",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/models",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/routes",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/articles",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/topics",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/topics/show",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/words",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/components",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words"
+		"/home/eike/repos/master/ma-impl"
 	],
 	"file_history":
 	[
+		"/home/eike/repos/master/ma-impl/vipra-ui/ember-cli-build.js",
+		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/application.hbs",
+		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/index.hbs",
+		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/loading.hbs",
+		"/home/eike/repos/master/ma-impl/vipra-ui/app/styles/app.css",
+		"/home/eike/Downloads/squares.css",
+		"/home/eike/repos/master/ma-impl/vipra-ui/app/index.html",
+		"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/words/show.js",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words/show.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words/index.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/models/word.js",
@@ -506,7 +476,6 @@
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/components/items-list.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics/show/index.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words.hbs",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/index.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/router.js",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/words",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/models/topic.js",
@@ -534,7 +503,6 @@
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics/show/edit.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics/show.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/helpers/topic-share.js",
-		"/home/eike/repos/master/ma-impl/vipra-ui/app/styles/app.css",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/components/topic-link.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics/edit.hbs",
 		"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/articles/show.js",
@@ -616,13 +584,7 @@
 		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/routes/articles.show.js",
 		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/templates/articles/test.hbs",
 		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/.ember-cli",
-		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/bower_components/ember-data/ember-data.js",
-		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/bower_components/ember/ember.js",
-		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/templates/application.hbs",
-		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/serializers/application.js",
-		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/bower.json",
-		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/bower_components/ember/.bower.json",
-		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/package.json"
+		"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/bower_components/ember-data/ember-data.js"
 	],
 	"find":
 	{
@@ -946,96 +908,8 @@
 	"groups":
 	[
 		{
-			"selected": 1,
 			"sheets":
 			[
-				{
-					"buffer": 0,
-					"file": "vipra-ui/app/routes/words/show.js",
-					"semi_transient": false,
-					"settings":
-					{
-						"buffer_size": 178,
-						"regions":
-						{
-						},
-						"selection":
-						[
-							[
-								178,
-								178
-							]
-						],
-						"settings":
-						{
-							"open_with_edit": true,
-							"syntax": "Packages/JavaScriptNext - ES6 Syntax/JavaScriptNext.tmLanguage"
-						},
-						"translation.x": 0.0,
-						"translation.y": 0.0,
-						"zoom_level": 1.0
-					},
-					"stack_index": 2,
-					"type": "text"
-				},
-				{
-					"buffer": 1,
-					"file": "vipra-ui/ember-cli-build.js",
-					"semi_transient": false,
-					"settings":
-					{
-						"buffer_size": 881,
-						"regions":
-						{
-						},
-						"selection":
-						[
-							[
-								877,
-								877
-							]
-						],
-						"settings":
-						{
-							"syntax": "Packages/JavaScriptNext - ES6 Syntax/JavaScriptNext.tmLanguage",
-							"tab_size": 2,
-							"translate_tabs_to_spaces": true
-						},
-						"translation.x": 0.0,
-						"translation.y": 0.0,
-						"zoom_level": 1.0
-					},
-					"stack_index": 0,
-					"type": "text"
-				},
-				{
-					"buffer": 2,
-					"file": "vipra-ui/app/templates/index.hbs",
-					"semi_transient": false,
-					"settings":
-					{
-						"buffer_size": 145,
-						"regions":
-						{
-						},
-						"selection":
-						[
-							[
-								145,
-								145
-							]
-						],
-						"settings":
-						{
-							"syntax": "Packages/Handlebars/grammars/Handlebars.tmLanguage"
-						},
-						"translation.x": 0.0,
-						"translation.y": 0.0,
-						"zoom_level": 1.0
-					},
-					"stack_index": 1,
-					"type": "text"
-				}
 			]
 		}
 	],
diff --git a/vipra-ui/.classpath b/vipra-ui/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..d6da2a8521a35152027ff4ca29cc9fdfeab04d42
--- /dev/null
+++ b/vipra-ui/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="owner.project.facets" value="java"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
+	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
+	<classpathentry kind="output" path="build/classes"/>
+</classpath>
diff --git a/vipra-ui/.project b/vipra-ui/.project
index 6f683a496d89c3c50ed5a40b7db8a94d7cc29afc..eee3426428df05147acccd89868b1434efb4157c 100644
--- a/vipra-ui/.project
+++ b/vipra-ui/.project
@@ -5,7 +5,32 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
 </projectDescription>
diff --git a/vipra-ui/.settings/.jsdtscope b/vipra-ui/.settings/.jsdtscope
new file mode 100644
index 0000000000000000000000000000000000000000..92e666d77dd95f33f7fc056a45049f2034b90ab8
--- /dev/null
+++ b/vipra-ui/.settings/.jsdtscope
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="WebContent"/>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
+		<attributes>
+			<attribute name="hide" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
+	<classpathentry kind="output" path=""/>
+</classpath>
diff --git a/vipra-ui/.settings/org.eclipse.jdt.core.prefs b/vipra-ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..0c68a61dca867ceb49e79d2402935261ec3e3809
--- /dev/null
+++ b/vipra-ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/vipra-ui/.settings/org.eclipse.wst.common.component b/vipra-ui/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000000000000000000000000000000000000..1f5413a37ea6089f61ba44e214e248c8514aadf5
--- /dev/null
+++ b/vipra-ui/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="vipra-ui">
+        <wb-resource deploy-path="/" source-path="/dist"/>
+        <wb-resource deploy-path="/" source-path="/webapp" tag="defaultRootSource"/>
+        <property name="context-root" value="vipra-ui"/>
+        <property name="java-output-path" value="/vipra-ui/build/classes"/>
+    </wb-module>
+</project-modules>
diff --git a/vipra-ui/.settings/org.eclipse.wst.common.project.facet.core.xml b/vipra-ui/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5523f3219616f2cb009139882bc5716b68f58365
--- /dev/null
+++ b/vipra-ui/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <fixed facet="jst.web"/>
+  <fixed facet="wst.jsdt.web"/>
+  <fixed facet="java"/>
+  <installed facet="wst.jsdt.web" version="1.0"/>
+  <installed facet="java" version="1.8"/>
+  <installed facet="jst.web" version="3.1"/>
+</faceted-project>
diff --git a/vipra-ui/.settings/org.eclipse.wst.jsdt.ui.superType.container b/vipra-ui/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 0000000000000000000000000000000000000000..3bd5d0a4803967bc0bf72a7dd66d7e292ed2e586
--- /dev/null
+++ b/vipra-ui/.settings/org.eclipse.wst.jsdt.ui.superType.container
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/vipra-ui/.settings/org.eclipse.wst.jsdt.ui.superType.name b/vipra-ui/.settings/org.eclipse.wst.jsdt.ui.superType.name
new file mode 100644
index 0000000000000000000000000000000000000000..05bd71b6ec2c1982d1e8a5653073281994564ae8
--- /dev/null
+++ b/vipra-ui/.settings/org.eclipse.wst.jsdt.ui.superType.name
@@ -0,0 +1 @@
+Window
\ No newline at end of file
diff --git a/vipra-ui/.settings/org.eclipse.wst.validation.prefs b/vipra-ui/.settings/org.eclipse.wst.validation.prefs
index f9b717e123291836121522c96c0e2307df19d6cc..508e5864e22b94faa2fd10dd376630d050fb3c7e 100644
--- a/vipra-ui/.settings/org.eclipse.wst.validation.prefs
+++ b/vipra-ui/.settings/org.eclipse.wst.validation.prefs
@@ -6,4 +6,7 @@ eclipse.preferences.version=1
 override=true
 suspend=false
 vals/org.eclipse.wst.html.core.HTMLValidator/global=FF01
+vals/org.eclipse.wst.xml.core.xml/global=FF03
+vals/org.eclipse.wst.xsd.core.xsd/global=FF02162org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator
+vals/org.eclipse.wst.xsl.core.xsl/global=FF02
 vf.version=3
diff --git a/vipra-ui/app/index.html b/vipra-ui/app/index.html
index 42eed3eb05d7c4f2e784b32e42d5c2a695a5b03f..bc38d0b0838bb75559b3d7df61ec77d55409f833 100644
--- a/vipra-ui/app/index.html
+++ b/vipra-ui/app/index.html
@@ -3,9 +3,8 @@
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title>Vipra</title>
-    <meta name="description" content="">
     <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Vipra</title>
 
     <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png">
     <link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png">
diff --git a/vipra-ui/app/styles/app.css b/vipra-ui/app/styles/app.css
deleted file mode 100644
index f48d3e041c4d050ee17a9cab265e35a3bff1d2a2..0000000000000000000000000000000000000000
--- a/vipra-ui/app/styles/app.css
+++ /dev/null
@@ -1,8 +0,0 @@
-td {
-  vertical-align: top;
-}
-
-.word {
-  cursor: pointer;
-  padding-right: 5px;
-}
\ No newline at end of file
diff --git a/vipra-ui/app/styles/app.scss b/vipra-ui/app/styles/app.scss
new file mode 100644
index 0000000000000000000000000000000000000000..a3dd94429064050667350bfcb0ad548e7f99f94c
--- /dev/null
+++ b/vipra-ui/app/styles/app.scss
@@ -0,0 +1,21 @@
+td {
+  vertical-align: top;
+}
+
+.word {
+  cursor: pointer;
+  padding-right: 5px;
+}
+
+.center {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
+
+.loading {
+  background: url(/assets/images/squares.gif) no-repeat center center;
+  width: 120px;
+  height: 120px;
+}
\ No newline at end of file
diff --git a/vipra-ui/app/templates/application.hbs b/vipra-ui/app/templates/application.hbs
index e2147cab02d61b24bccf33f448609ff7bf5ad470..683e96974dcf0c4a947830a4146936cbd6d9aabd 100644
--- a/vipra-ui/app/templates/application.hbs
+++ b/vipra-ui/app/templates/application.hbs
@@ -1 +1,30 @@
+<nav class="navbar navbar-default">
+  <div class="container-fluid">
+    <!-- Brand and toggle get grouped for better mobile display -->
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#vipra-navbar-collapse-1" aria-expanded="false">
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="#">Vipra</a>
+    </div>
+
+    <!-- Collect the nav links, forms, and other content for toggling -->
+    <div class="collapse navbar-collapse" id="vipra-navbar-collapse-1">
+      <ul class="nav navbar-nav">
+        <li class="dropdown">
+          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Browse <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li>{{#link-to 'articles'}}Articles{{/link-to}}</li>
+            <li>{{#link-to 'topics'}}Topics{{/link-to}}</li>
+            <li>{{#link-to 'words'}}Words{{/link-to}}</li>
+          </ul>
+        </li>
+      </ul>
+    </div><!-- /.navbar-collapse -->
+  </div><!-- /.container-fluid -->
+</nav>
+
 {{outlet}}
\ No newline at end of file
diff --git a/vipra-ui/app/templates/index.hbs b/vipra-ui/app/templates/index.hbs
index c7e27e938d0a980c7f81a15f59e1281cc51faf71..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/vipra-ui/app/templates/index.hbs
+++ b/vipra-ui/app/templates/index.hbs
@@ -1,5 +0,0 @@
-<h1>Vipra</h1>
-
-{{#link-to 'articles'}}Articles{{/link-to}}<br>
-{{#link-to 'topics'}}Topics{{/link-to}}<br>
-{{#link-to 'words'}}Words{{/link-to}}
\ No newline at end of file
diff --git a/vipra-ui/app/templates/loading.hbs b/vipra-ui/app/templates/loading.hbs
index 37d709251262e861315c9da5f955b5600a1c6007..119bd4728eb34759978edbdd0e81f04f7cd8fbe1 100644
--- a/vipra-ui/app/templates/loading.hbs
+++ b/vipra-ui/app/templates/loading.hbs
@@ -1 +1,4 @@
-Loading...
\ No newline at end of file
+<div class="center">
+  <div class="loading">
+  </div>
+</div>
\ No newline at end of file
diff --git a/vipra-ui/ember-cli-build.js b/vipra-ui/ember-cli-build.js
index c8c397e4a3370658de3b1410718ea1c920e3614d..dccfb16e1233e222024114fc185b49a375532ce7 100644
--- a/vipra-ui/ember-cli-build.js
+++ b/vipra-ui/ember-cli-build.js
@@ -4,7 +4,13 @@ var EmberApp = require('ember-cli/lib/broccoli/ember-app');
 
 module.exports = function(defaults) {
   var app = new EmberApp(defaults, {
-    // Add options here
+    sourcemaps: {
+      enabled: EmberApp.env() !== 'production',
+      extensions: ['js']
+    },
+    sassOptions: {
+      extension: 'scss'
+    }
   });
 
   var bootstrapPath = 'bower_components/bootstrap/dist';
diff --git a/vipra-ui/package.json b/vipra-ui/package.json
index 54be369ab5dcbbc9f0cb1182070dce4abb8a65fd..c6a30adb9bcd26b5f9ae9294744d606d487d019a 100644
--- a/vipra-ui/package.json
+++ b/vipra-ui/package.json
@@ -30,6 +30,7 @@
     "ember-cli-inject-live-reload": "^1.3.1",
     "ember-cli-qunit": "^1.0.4",
     "ember-cli-release": "0.2.8",
+    "ember-cli-sass": "5.2.1",
     "ember-cli-sri": "^1.2.0",
     "ember-cli-uglify": "^1.2.0",
     "ember-data": "1.13.15",
diff --git a/vipra-ui/public/assets/images/squares.gif b/vipra-ui/public/assets/images/squares.gif
new file mode 100644
index 0000000000000000000000000000000000000000..15739a5e3e23301ea73683e760f57fcc58b0b275
Binary files /dev/null and b/vipra-ui/public/assets/images/squares.gif differ
diff --git a/vipra-ui/webapp/WEB-INF/web.xml b/vipra-ui/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000000000000000000000000000000000..55266664a2f8afd5345542489f7916d4add11991
--- /dev/null
+++ b/vipra-ui/webapp/WEB-INF/web.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
+	version="3.1">
+	<welcome-file-list>
+		<welcome-file>index.html</welcome-file>
+	</welcome-file-list>
+</web-app>
\ No newline at end of file