diff --git a/xos/core/xoslib/ngXosLib/bower.json b/xos/core/xoslib/ngXosLib/bower.json
index 8547b47..554e02f 100644
--- a/xos/core/xoslib/ngXosLib/bower.json
+++ b/xos/core/xoslib/ngXosLib/bower.json
@@ -15,7 +15,7 @@
   ],
   "dependencies": {
     "angular": "~1.4.7",
-    "angular-route": "~1.4.7",
+    "angular-ui-router": "~0.2.15",
     "angular-resource": "~1.4.7",
     "ng-lodash": "~0.3.0",
     "angular-cookies": "~1.4.7",
diff --git a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulp/build.js b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulp/build.js
index 679ae1c..914a809 100644
--- a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulp/build.js
+++ b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulp/build.js
@@ -30,13 +30,13 @@
   // compile and minify scripts
   gulp.task('scripts', function() {
     return gulp.src([
-        options.tmp + '**/*.js'
-      ])
-      .pipe(ngAnnotate())
-      .pipe(angularFilesort())
-      .pipe(concat('xos<%= fileName %>.js'))
-      .pipe(uglify())
-      .pipe(gulp.dest(options.dist));
+      options.tmp + '**/*.js'
+    ])
+    .pipe(ngAnnotate())
+    .pipe(angularFilesort())
+    .pipe(concat('xos<%= fileName %>.js'))
+    .pipe(uglify())
+    .pipe(gulp.dest(options.static + 'js/'));
   });
 
   // set templates in cache
@@ -49,18 +49,6 @@
       .pipe(gulp.dest(options.tmp));
   });
 
-  // copy js output to Django Folder
-  gulp.task('copyJs', function(){
-    return gulp.src('dist/xos<%= fileName %>.js')
-      .pipe(gulp.dest(options.static + 'js/'));
-  });
-
-  // copy vendor js output to Django Folder
-  gulp.task('copyVendor', function(){
-    return gulp.src(options.dist + 'xos<%= fileName %>Vendor.js')
-      .pipe(gulp.dest(options.static + 'js/vendor/'));
-  });
-
   // copy html index to Django Folder
   gulp.task('copyHtml', function(){
     return gulp.src(options.src + 'xos<%= fileName %>.html')
@@ -82,7 +70,7 @@
     return gulp.src(bowerDeps)
       .pipe(concat('xos<%= fileName %>Vendor.js'))
       .pipe(uglify())
-      .pipe(gulp.dest(options.dist));
+      .pipe(gulp.dest(options.static + 'js/vendor/'));
   });
 
   gulp.task('lint', function () {
@@ -98,10 +86,8 @@
       'templates',
       'babel',
       'scripts',
-      'copyJs',
-      'copyHtml',
       'wiredep',
-      'copyVendor',
+      'copyHtml',
       'cleanTmp'
     );
   });
diff --git a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/src/prod.html b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/src/prod.html
index 6d5ffb0..4f1fc20 100644
--- a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/src/prod.html
+++ b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/src/prod.html
@@ -1,5 +1,5 @@
 <div ng-app="xos.<%= name %>">
-  <ng-view></ng-view>
+  <div ui-view></div>
 </div>
 
 <link rel="stylesheet" href="{{ STATIC_URL }}/css/xosLib.css">
