diff --git a/web/pgadmin/browser/server_groups/servers/roles/__init__.py b/web/pgadmin/browser/server_groups/servers/roles/__init__.py
index da8d06a..7cdbe39 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/roles/__init__.py
@@ -9,7 +9,7 @@
 import re
 from functools import wraps
 
-import pgadmin.browser.server_groups as sg
+import pgadmin.browser.server_groups.servers as servers
 import simplejson as json
 from flask import render_template, request, jsonify, current_app
 from flask_babel import gettext as _
@@ -55,7 +55,7 @@ class RoleModule(CollectionNodeModule):
         Load the module script for server, when any of the server-group node is
         initialized.
         """
-        return sg.ServerGroupModule.NODE_TYPE
+        return servers.ServerModule.NODE_TYPE
 
     @property
     def csssnippets(self):
diff --git a/web/pgadmin/dashboard/templates/dashboard/js/dashboard.js b/web/pgadmin/dashboard/templates/dashboard/js/dashboard.js
index 35ed102..291029c 100644
--- a/web/pgadmin/dashboard/templates/dashboard/js/dashboard.js
+++ b/web/pgadmin/dashboard/templates/dashboard/js/dashboard.js
@@ -1,6 +1,6 @@
 define([
-    'require', 'jquery', 'pgadmin', 'underscore', 'backbone', 'sources/gettext', 'flotr2', 'wcdocker',
-    'pgadmin.browser', 'bootstrap'
+    'require', 'jquery', 'pgadmin', 'underscore', 'backbone',
+    'sources/gettext', 'wcdocker', 'pgadmin.browser', 'bootstrap'
     ],
 function(r, $, pgAdmin, _, Backbone, gettext) {
 
@@ -181,7 +181,11 @@ function(r, $, pgAdmin, _, Backbone, gettext) {
             var div = dashboardPanel.layout().scene().find('.pg-panel-content');
             if ($(div).find(container).length) { // Exists?
                 if (container.clientHeight > 0 && container.clientWidth > 0) { // Not hidden?
+                  // Load flotr2 only when required
+                  var Flotr2 = 'flotr2';
+                  require([Flotr2], function(Flotr){
                     Flotr.draw(container, dataset, options);
+                  })
                 }
             } else {
                 return;
diff --git a/web/pgadmin/misc/file_manager/__init__.py b/web/pgadmin/misc/file_manager/__init__.py
index 85d7fb4..2505b79 100644
--- a/web/pgadmin/misc/file_manager/__init__.py
+++ b/web/pgadmin/misc/file_manager/__init__.py
@@ -125,7 +125,7 @@ class FileManagerModule(PgAdminModule):
             {
                 'name': 'pgadmin.file_manager',
                 'path': url_for('file_manager.index') + 'file_manager',
-                'when': None
+                'when': 'server'
             },
         ]
 
diff --git a/web/pgadmin/static/js/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid.pgadmin.js
index 64f0cb6..da5057e 100644
--- a/web/pgadmin/static/js/backgrid.pgadmin.js
+++ b/web/pgadmin/static/js/backgrid.pgadmin.js
@@ -2,13 +2,13 @@
   // Set up Backform appropriately for the environment. Start with AMD.
   if (typeof define === 'function' && define.amd) {
     define([
-      'underscore', 'jquery', 'backbone', 'backform', 'backgrid', 'alertify',
-      'moment', 'bignumber', 'bootstrap.datetimepicker'
+      'require', 'underscore', 'jquery', 'backbone', 'backform', 'backgrid',
+      'alertify', 'moment', 'bootstrap.datetimepicker'
     ],
-     function(_, $, Backbone, Backform, Backgrid, Alertify, moment, BigNumber) {
+     function(require, _, $, Backbone, Backform, Backgrid, Alertify, moment) {
       // Export global even in AMD case in case this script is loaded with
       // others that may still expect a global Backform.
-      return factory(root, _, $, Backbone, Backform, Alertify, moment, BigNumber);
+      return factory(root, require, _, $, Backbone, Backform, Alertify, moment);
     });
 
   // Next for Node.js or CommonJS. jQuery may not be needed as a module.
@@ -25,7 +25,7 @@
   } else {
     factory(root, root._, (root.jQuery || root.Zepto || root.ender || root.$), root.Backbone, root.Backform);
   }
-} (this, function(root, _, $, Backbone, Backform, Alertify, moment, BigNumber) {
+} (this, function(root, require, _, $, Backbone, Backform, Alertify, moment) {
   /*
      * Add mechanism in backgrid to render different types of cells in
      * same column;
@@ -56,106 +56,112 @@
    * convert it into BigNumber object and make comparison to perform sorting.
    */
 
-  _.extend(Backgrid.Body.prototype, {
-    sort: function (column, direction) {
-
-      if (!_.contains(["ascending", "descending", null], direction)) {
-        throw new RangeError('direction must be one of "ascending", "descending" or `null`');
-      }
+    _.extend(Backgrid.Body.prototype, {
+      BigNumber: undefined,
+      sort: function (column, direction) {
+            // Load bignumber only when required
+        var Bignumber = 'bignumber',
+          self = this;
+
+        require([Bignumber], function(BigNumber){
+          BigNumber = BigNumber;
+          if (!_.contains(["ascending", "descending", null], direction)) {
+            throw new RangeError('direction must be one of "ascending", "descending" or `null`');
+          }
 
-      if (_.isString(column)) column = this.columns.findWhere({name: column});
+          if (_.isString(column)) column = self.columns.findWhere({name: column});
 
-      var collection = this.collection;
+          var collection = self.collection;
 
-      var order;
-      if (direction === "ascending") order = -1;
-      else if (direction === "descending") order = 1;
-      else order = null;
+          var order;
+          if (direction === "ascending") order = -1;
+          else if (direction === "descending") order = 1;
+          else order = null;
 
-      // Get column type and pass it to comparator.
-      var col_type = column.get('cell').prototype.className || 'string-cell',
-          comparator = this.makeComparator(column.get("name"), order,
-                                          order ?
-                                          column.sortValue() :
-                                          function (model) {
-                                            return model.cid.replace('c', '') * 1;
-                                          }, col_type);
+          // Get column type and pass it to comparator.
+          var col_type = column.get('cell').prototype.className || 'string-cell',
+              comparator = self.makeComparator(column.get("name"), order,
+                                              order ?
+                                              column.sortValue() :
+                                              function (model) {
+                                                return model.cid.replace('c', '') * 1;
+                                              }, col_type);
 
-      if (Backbone.PageableCollection &&
-          collection instanceof Backbone.PageableCollection) {
+          if (Backbone.PageableCollection &&
+              collection instanceof Backbone.PageableCollection) {
 
-        collection.setSorting(order && column.get("name"), order,
-                              {sortValue: column.sortValue()});
+            collection.setSorting(order && column.get("name"), order,
+                                  {sortValue: column.sortValue()});
 
-        if (collection.fullCollection) {
-          // If order is null, pageable will remove the comparator on both sides,
-          // in this case the default insertion order comparator needs to be
-          // attached to get back to the order before sorting.
-          if (collection.fullCollection.comparator == null) {
-            collection.fullCollection.comparator = comparator;
+            if (collection.fullCollection) {
+              // If order is null, pageable will remove the comparator on both sides,
+              // in this case the default insertion order comparator needs to be
+              // attached to get back to the order before sorting.
+              if (collection.fullCollection.comparator == null) {
+                collection.fullCollection.comparator = comparator;
+              }
+              collection.fullCollection.sort();
+              collection.trigger("backgrid:sorted", column, direction, collection);
+            }
+            else collection.fetch({reset: true, success: function () {
+              collection.trigger("backgrid:sorted", column, direction, collection);
+            }});
+          }
+          else {
+            collection.comparator = comparator;
+            collection.sort();
+            collection.trigger("backgrid:sorted", column, direction, collection);
           }
-          collection.fullCollection.sort();
-          collection.trigger("backgrid:sorted", column, direction, collection);
-        }
-        else collection.fetch({reset: true, success: function () {
-          collection.trigger("backgrid:sorted", column, direction, collection);
-        }});
-      }
-      else {
-        collection.comparator = comparator;
-        collection.sort();
-        collection.trigger("backgrid:sorted", column, direction, collection);
-      }
-
-      column.set("direction", direction);
 
-      return this;
-    },
-    makeComparator: function (attr, order, func, type) {
+          column.set("direction", direction);
 
-      return function (left, right) {
-        // extract the values from the models
+          return self;
+        });
+      },
+      makeComparator: function (attr, order, func, type) {
+        return function (left, right) {
+          // extract the values from the models
+
+          var l = func(left, attr), r = func(right, attr), t;
+
+          var types = ['number-cell', 'integer-cell'];
+            if (_.include(types, type)) {
+            var _l, _r;
+            // NaN if invalid number
+            try {
+              _l = new BigNumber(l);
+            } catch(err) {
+              _l = NaN;
+            }
 
-        var l = func(left, attr), r = func(right, attr), t;
+            try {
+              _r = new BigNumber(r);
+            } catch(err) {
+              _r = NaN;
+            }
 
-        var types = ['number-cell', 'integer-cell'];
-        if (_.include(types, type)) {
-          var _l, _r;
-          // NaN if invalid number
-          try {
-            _l = new BigNumber(l);
-          } catch(err) {
-            _l = NaN;
-          }
+            // if descending order, swap left and right
+            if (order === 1) t = _l, _l = _r, _r = t;
 
-          try {
-            _r = new BigNumber(r);
-          } catch(err) {
-            _r = NaN;
+            if (_l.eq(_r))  // If both are equals
+              return 0;
+            else if (_l.lt(_r)) // If left is less than right
+              return -1;
+            else
+              return 1;
           }
+            else {
+            // if descending order, swap left and right
+            if (order === 1) t = l, l = r, r = t;
 
-          // if descending order, swap left and right
-          if (order === 1) t = _l, _l = _r, _r = t;
-
-          if (_l.eq(_r))  // If both are equals
-            return 0;
-          else if (_l.lt(_r)) // If left is less than right
-            return -1;
-          else
+             // compare as usual
+            if (l === r) return 0;
+            else if (l < r) return -1;
             return 1;
-        }
-        else {
-          // if descending order, swap left and right
-          if (order === 1) t = l, l = r, r = t;
-
-           // compare as usual
-          if (l === r) return 0;
-          else if (l < r) return -1;
-          return 1;
-        }
-      };
-    }
-  });
+          }
+        };
+      }
+    });
 
   _.extend(Backgrid.Row.prototype, {
     makeCell: function (column) {
diff --git a/web/pgadmin/tools/backup/__init__.py b/web/pgadmin/tools/backup/__init__.py
index 9c0537a..e45a5ce 100644
--- a/web/pgadmin/tools/backup/__init__.py
+++ b/web/pgadmin/tools/backup/__init__.py
@@ -49,7 +49,7 @@ class BackupModule(PgAdminModule):
         return [{
             'name': 'pgadmin.tools.backup',
             'path': url_for('backup.index') + 'backup',
-            'when': None
+            'when': 'server'
         }]
 
     def show_system_objects(self):
diff --git a/web/pgadmin/tools/datagrid/__init__.py b/web/pgadmin/tools/datagrid/__init__.py
index f4629fc..8da4de3 100644
--- a/web/pgadmin/tools/datagrid/__init__.py
+++ b/web/pgadmin/tools/datagrid/__init__.py
@@ -43,7 +43,7 @@ class DataGridModule(PgAdminModule):
         return [{
             'name': 'pgadmin.datagrid',
             'path': url_for('datagrid.index') + "datagrid",
-            'when': None
+            'when': 'server'
         }]
 
     def get_panels(self):
diff --git a/web/pgadmin/tools/debugger/__init__.py b/web/pgadmin/tools/debugger/__init__.py
index 2c0dbc4..e6288b1 100644
--- a/web/pgadmin/tools/debugger/__init__.py
+++ b/web/pgadmin/tools/debugger/__init__.py
@@ -55,7 +55,7 @@ class DebuggerModule(PgAdminModule):
             scripts.append({
                 'name': name,
                 'path': url_for('debugger.index') + script,
-                'when': None
+                'when': 'database'
             })
 
         return scripts
diff --git a/web/pgadmin/tools/grant_wizard/__init__.py b/web/pgadmin/tools/grant_wizard/__init__.py
index 9c6f47e..661c9ff 100644
--- a/web/pgadmin/tools/grant_wizard/__init__.py
+++ b/web/pgadmin/tools/grant_wizard/__init__.py
@@ -66,12 +66,12 @@ class GrantWizardModule(PgAdminModule):
         scripts.append({
             'name': 'pgadmin.tools.grant_wizard',
             'path': url_for('grant_wizard.index') + 'grant_wizard',
-            'when': None
+            'when': 'server'
         })
         scripts.append({
             'name': 'pgadmin.browser.wizard',
             'path': url_for('browser.static', filename='js/wizard'),
-            'when': None
+            'when': 'server'
         })
         return scripts
 
@@ -150,7 +150,6 @@ def script():
         status=200,
         mimetype="application/javascript")
 
-
 @blueprint.route(
     '/acl/<int:gid>/<int:sid>/<int:did>/', methods=('GET', 'POST'))
 @login_required
diff --git a/web/pgadmin/tools/import_export/__init__.py b/web/pgadmin/tools/import_export/__init__.py
index 4c1ac04..4bbfde8 100644
--- a/web/pgadmin/tools/import_export/__init__.py
+++ b/web/pgadmin/tools/import_export/__init__.py
@@ -48,7 +48,7 @@ class ImportExportModule(PgAdminModule):
             scripts.append({
                 'name': name,
                 'path': url_for('import_export.index') + script,
-                'when': None
+                'when': 'database'
             })
 
         return scripts
diff --git a/web/pgadmin/tools/maintenance/__init__.py b/web/pgadmin/tools/maintenance/__init__.py
index c12906e..a4586d4 100644
--- a/web/pgadmin/tools/maintenance/__init__.py
+++ b/web/pgadmin/tools/maintenance/__init__.py
@@ -50,7 +50,7 @@ class MaintenanceModule(PgAdminModule):
             scripts.append({
                 'name': name,
                 'path': url_for('maintenance.index') + script,
-                'when': None
+                'when': 'database'
             })
 
         return scripts
diff --git a/web/pgadmin/tools/restore/__init__.py b/web/pgadmin/tools/restore/__init__.py
index b6bf564..12d6777 100644
--- a/web/pgadmin/tools/restore/__init__.py
+++ b/web/pgadmin/tools/restore/__init__.py
@@ -48,7 +48,7 @@ class RestoreModule(PgAdminModule):
         return [{
             'name': 'pgadmin.tools.restore',
             'path': url_for('restore.index') + 'restore',
-            'when': None
+            'when': 'database'
         }]
 
 
diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py
index 828cb99..f5a8937 100644
--- a/web/pgadmin/tools/sqleditor/__init__.py
+++ b/web/pgadmin/tools/sqleditor/__init__.py
@@ -67,7 +67,7 @@ class SqlEditorModule(PgAdminModule):
         return [{
             'name': 'pgadmin.sqleditor',
             'path': url_for('sqleditor.index') + "sqleditor",
-            'when': None
+            'when': 'server'
         }]
 
     def get_panels(self):
diff --git a/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js b/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js
index c8c91c7..251a6c8 100644
--- a/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js
+++ b/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js
@@ -1,7 +1,7 @@
 define([
       'jquery', 'underscore', 'underscore.string', 'alertify',
       'pgadmin.browser', 'backbone', 'backgrid', 'backform', 'pgadmin.browser.node',
-      'backgrid.select.all', 'backgrid.filter'
+      'backgrid.filter'
       ],
 
   // This defines Backup dialog
