diff --git a/app/assets/javascripts/discourse/routes/badges_index_route.js b/app/assets/javascripts/discourse/routes/badges-index.js.es6
similarity index 69%
rename from app/assets/javascripts/discourse/routes/badges_index_route.js
rename to app/assets/javascripts/discourse/routes/badges-index.js.es6
index 4c8fc6344..48992756b 100644
--- a/app/assets/javascripts/discourse/routes/badges_index_route.js
+++ b/app/assets/javascripts/discourse/routes/badges-index.js.es6
@@ -1,12 +1,5 @@
-/**
-  Shows a list of all badges.
+export default Discourse.Route.extend({
 
-  @class BadgesIndexRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.BadgesIndexRoute = Discourse.Route.extend({
   model: function() {
     if (PreloadStore.get('badges')) {
       return PreloadStore.getAndRemove('badges').then(function(json) {
diff --git a/app/assets/javascripts/discourse/routes/badges_show_route.js b/app/assets/javascripts/discourse/routes/badges-show.js.es6
similarity index 80%
rename from app/assets/javascripts/discourse/routes/badges_show_route.js
rename to app/assets/javascripts/discourse/routes/badges-show.js.es6
index 4da70063b..e0b817a5e 100644
--- a/app/assets/javascripts/discourse/routes/badges_show_route.js
+++ b/app/assets/javascripts/discourse/routes/badges-show.js.es6
@@ -1,12 +1,4 @@
-/**
-  Shows a particular badge.
-
-  @class BadgesShowRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.BadgesShowRoute = Ember.Route.extend({
+export default Ember.Route.extend({
   serialize: function(model) {
     return {id: model.get('id'), slug: model.get('name').replace(/[^A-Za-z0-9_]+/g, '-').toLowerCase()};
   },
diff --git a/app/assets/javascripts/discourse/routes/exception.js.es6 b/app/assets/javascripts/discourse/routes/exception.js.es6
new file mode 100644
index 000000000..26152e058
--- /dev/null
+++ b/app/assets/javascripts/discourse/routes/exception.js.es6
@@ -0,0 +1,5 @@
+export default Discourse.Route.extend({
+  serialize: function() {
+    return "";
+  }
+});
diff --git a/app/assets/javascripts/discourse/routes/exception_route.js b/app/assets/javascripts/discourse/routes/exception_route.js
deleted file mode 100644
index 8640600e0..000000000
--- a/app/assets/javascripts/discourse/routes/exception_route.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
-  Client-side pseudo-route for showing an error page.
-
-  @class ExceptionRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.ExceptionRoute = Discourse.Route.extend({
-  serialize: function() {
-    return "";
-  }
-});
diff --git a/app/assets/javascripts/discourse/routes/group_index_route.js b/app/assets/javascripts/discourse/routes/group-index.js.es6
similarity index 53%
rename from app/assets/javascripts/discourse/routes/group_index_route.js
rename to app/assets/javascripts/discourse/routes/group-index.js.es6
index 3976e0e9d..a3a19968c 100644
--- a/app/assets/javascripts/discourse/routes/group_index_route.js
+++ b/app/assets/javascripts/discourse/routes/group-index.js.es6
@@ -1,12 +1,4 @@
-/**
-  The route for the index of a Group
-
-  @class GroupIndexRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.GroupIndexRoute = Discourse.Route.extend({
+export default Discourse.Route.extend({
   model: function() {
     return this.modelFor('group').findPosts();
   },
diff --git a/app/assets/javascripts/discourse/routes/group_members_route.js b/app/assets/javascripts/discourse/routes/group-members.js.es6
similarity index 64%
rename from app/assets/javascripts/discourse/routes/group_members_route.js
rename to app/assets/javascripts/discourse/routes/group-members.js.es6
index 4cea70c09..93d127401 100644
--- a/app/assets/javascripts/discourse/routes/group_members_route.js
+++ b/app/assets/javascripts/discourse/routes/group-members.js.es6
@@ -1,12 +1,4 @@
-/**
-  Set things up to display the members of a group
-
-  @class GroupMembersRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.GroupMembersRoute = Discourse.Route.extend({
+export default Discourse.Route.extend({
   model: function() {
     return this.modelFor('group');
   },
diff --git a/app/assets/javascripts/discourse/routes/group_route.js b/app/assets/javascripts/discourse/routes/group.js.es6
similarity index 74%
rename from app/assets/javascripts/discourse/routes/group_route.js
rename to app/assets/javascripts/discourse/routes/group.js.es6
index 971c2fe79..a33a4f637 100644
--- a/app/assets/javascripts/discourse/routes/group_route.js
+++ b/app/assets/javascripts/discourse/routes/group.js.es6
@@ -1,12 +1,4 @@
-/**
-  The base route for a group
-
-  @class GroupRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.GroupRoute = Discourse.Route.extend({
+export default Discourse.Route.extend({
 
   model: function(params) {
     return Discourse.Group.find(params.name);
diff --git a/app/assets/javascripts/discourse/routes/login_route.js b/app/assets/javascripts/discourse/routes/login.js.es6
similarity index 61%
rename from app/assets/javascripts/discourse/routes/login_route.js
rename to app/assets/javascripts/discourse/routes/login.js.es6
index 074efb380..7e68316ef 100644
--- a/app/assets/javascripts/discourse/routes/login_route.js
+++ b/app/assets/javascripts/discourse/routes/login.js.es6
@@ -1,7 +1,7 @@
-Discourse.LoginRoute = Discourse.Route.extend({
+export default Discourse.Route.extend({
   beforeModel: function() {
     if (!Discourse.SiteSetting.login_required) {
-      this.transitionTo('discovery.latest').then(function(e) {
+      this.replaceWith('discovery.latest').then(function(e) {
         Ember.run.next(function() {
           e.send('showLogin');
         });
diff --git a/app/assets/javascripts/discourse/routes/signup_route.js b/app/assets/javascripts/discourse/routes/signup.js.es6
similarity index 51%
rename from app/assets/javascripts/discourse/routes/signup_route.js
rename to app/assets/javascripts/discourse/routes/signup.js.es6
index e6a1b77a0..54e35374d 100644
--- a/app/assets/javascripts/discourse/routes/signup_route.js
+++ b/app/assets/javascripts/discourse/routes/signup.js.es6
@@ -1,9 +1,9 @@
-Discourse.SignupRoute = Discourse.Route.extend({
+export default Discourse.Route.extend({
   beforeModel: function() {
-    this.transitionTo('discovery.latest').then(function(e) {
+    this.replaceWith('discovery.latest').then(function(e) {
       Ember.run.next(function() {
         e.send('showCreateAccount');
       });
     });
-  }
+  },
 });
diff --git a/app/assets/javascripts/discourse/views/badges-show.js.es6 b/app/assets/javascripts/discourse/views/badges-show.js.es6
index b26d1e893..627906858 100644
--- a/app/assets/javascripts/discourse/views/badges-show.js.es6
+++ b/app/assets/javascripts/discourse/views/badges-show.js.es6
@@ -1,11 +1,3 @@
-/**
-  View for showing a particular badge.
-
-  @class BadgesShowView
-  @extends Discourse.View
-  @namespace Discourse
-  @module Discourse
-**/
 export default Discourse.View.extend(Discourse.LoadMore, {
   eyelineSelector: '.badge-user',
   tickOrX: function(field){