diff --git a/core/Menu/MenuAdmin.php b/core/Menu/MenuAdmin.php
index 106420b7122eddd7acaf01a1252c204eda7807e5..ad4c6c410861102ff1466db9bd63397300aeed2f 100644
--- a/core/Menu/MenuAdmin.php
+++ b/core/Menu/MenuAdmin.php
@@ -48,6 +48,71 @@ class MenuAdmin extends MenuAbstract
         self::getInstance()->add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order);
     }
 
+    /**
+     * See {@link add()}. Adds a new menu item to the development section.
+     * @param string $menuName
+     * @param array $url
+     * @param int $order
+     * @param bool $tooltip
+     * @api
+     */
+    public function addDevelopmentItem($menuName, $url, $order = 50, $tooltip = false)
+    {
+        $this->add('CoreAdminHome_MenuDevelopment', $menuName, $url, true, $order, $tooltip);
+    }
+
+    /**
+     * See {@link add()}. Adds a new menu item to the development section.
+     * @param string $menuName
+     * @param array $url
+     * @param int $order
+     * @param bool $tooltip
+     * @api
+     */
+    public function addDiagnosticItem($menuName, $url, $order = 50, $tooltip = false)
+    {
+        $this->add('CoreAdminHome_MenuDiagnostic', $menuName, $url, true, $order, $tooltip);
+    }
+
+    /**
+     * See {@link add()}. Adds a new menu item to the development section.
+     * @param string $menuName
+     * @param array $url
+     * @param int $order
+     * @param bool $tooltip
+     * @api
+     */
+    public function addPlatformItem($menuName, $url, $order = 50, $tooltip = false)
+    {
+        $this->add('CorePluginsAdmin_MenuPlatform', $menuName, $url, true, $order, $tooltip);
+    }
+
+    /**
+     * See {@link add()}. Adds a new menu item to the development section.
+     * @param string $menuName
+     * @param array $url
+     * @param int $order
+     * @param bool $tooltip
+     * @api
+     */
+    public function addSettingsItem($menuName, $url, $order = 50, $tooltip = false)
+    {
+        $this->add('General_Settings', $menuName, $url, true, $order, $tooltip);
+    }
+
+    /**
+     * See {@link add()}. Adds a new menu item to the development section.
+     * @param string $menuName
+     * @param array $url
+     * @param int $order
+     * @param bool $tooltip
+     * @api
+     */
+    public function addManageItem($menuName, $url, $order = 50, $tooltip = false)
+    {
+        $this->add('CoreAdminHome_MenuManage', $menuName, $url, true, $order, $tooltip);
+    }
+
     /**
      * Triggers the Menu.MenuAdmin.addItems hook and returns the admin menu.
      *
diff --git a/plugins/CoreAdminHome/Menu.php b/plugins/CoreAdminHome/Menu.php
index 0d9560569d23e6cf65e55845497f1771aca113dd..368a470fff5cd9e6ebc73214cacf9ed05fb162a3 100644
--- a/plugins/CoreAdminHome/Menu.php
+++ b/plugins/CoreAdminHome/Menu.php
@@ -20,21 +20,25 @@ class Menu extends \Piwik\Plugin\Menu
     {
         $hasAdminAccess = Piwik::isUserHasSomeAdminAccess();
 
-        $menu->add('CoreAdminHome_MenuManage', null, "", $hasAdminAccess, $order = 1);
-        $menu->add('CoreAdminHome_MenuDiagnostic', null, "", $hasAdminAccess, $order = 10);
-        $menu->add('General_Settings', null, "", $hasAdminAccess, $order = 5);
-        $menu->add('General_Settings', 'CoreAdminHome_MenuGeneralSettings',
-                   array('module' => 'CoreAdminHome', 'action' => 'generalSettings'),
-                   $hasAdminAccess,
-                   $order = 6);
-        $menu->add('CoreAdminHome_MenuManage', 'CoreAdminHome_TrackingCode',
-                   array('module' => 'CoreAdminHome', 'action' => 'trackingCodeGenerator'),
-                   $hasAdminAccess,
-                   $order = 4);
-        $menu->add('General_Settings', 'CoreAdminHome_PluginSettings',
-                   array('module' => 'CoreAdminHome', 'action' => 'pluginSettings'),
-                   SettingsManager::hasPluginsSettingsForCurrentUser(),
-                   $order = 7);
+        if ($hasAdminAccess) {
+            $menu->addManageItem(null, "", $order = 1);
+            $menu->addSettingsItem(null, "", $order = 5);
+            $menu->addDiagnosticItem(null, "", $order = 10);
+            $menu->addDevelopmentItem(null, "", $order = 15);
+
+            $menu->addSettingsItem('CoreAdminHome_MenuGeneralSettings',
+                                   array('module' => 'CoreAdminHome', 'action' => 'generalSettings'),
+                                   $order = 6);
+            $menu->addManageItem('CoreAdminHome_TrackingCode',
+                                 array('module' => 'CoreAdminHome', 'action' => 'trackingCodeGenerator'),
+                                 $order = 4);
+        }
+
+        if (SettingsManager::hasPluginsSettingsForCurrentUser()) {
+            $menu->addSettingsItem('CoreAdminHome_PluginSettings',
+                                   array('module' => 'CoreAdminHome', 'action' => 'pluginSettings'),
+                                   $order = 7);
+        }
     }
 
 }
diff --git a/plugins/CorePluginsAdmin/Menu.php b/plugins/CorePluginsAdmin/Menu.php
index 326596989bf447cd5b1023bbc257b26de6aef06e..3cd9dea086a39d636a92d54bd2a332080070aff5 100644
--- a/plugins/CorePluginsAdmin/Menu.php
+++ b/plugins/CorePluginsAdmin/Menu.php
@@ -39,21 +39,23 @@ class Menu extends \Piwik\Plugin\Menu
             }
         }
 
-        $menu->add('CorePluginsAdmin_MenuPlatform', null, "", !$isAnonymous, $order = 7);
-        $menu->add('CorePluginsAdmin_MenuPlatform', Piwik::translate('General_Plugins') . $pluginsUpdateMessage,
-                   array('module' => 'CorePluginsAdmin', 'action' => 'plugins', 'activated' => ''),
-                   $hasSuperUserAcess,
-                   $order = 1);
-        $menu->add('CorePluginsAdmin_MenuPlatform', Piwik::translate('CorePluginsAdmin_Themes') . $themesUpdateMessage,
-                   array('module' => 'CorePluginsAdmin', 'action' => 'themes', 'activated' => ''),
-                   $hasSuperUserAcess,
-                   $order = 3);
-
-        if ($isMarketplaceEnabled) {
-            $menu->add('CorePluginsAdmin_MenuPlatform', 'CorePluginsAdmin_Marketplace',
-                       array('module' => 'CorePluginsAdmin', 'action' => 'extend', 'activated' => ''),
-                       !$isAnonymous,
-                       $order = 5);
+        if (!$isAnonymous) {
+            $menu->addPlatformItem(null, "", $order = 7);
+        }
+
+        if ($hasSuperUserAcess) {
+            $menu->addPlatformItem(Piwik::translate('General_Plugins') . $pluginsUpdateMessage,
+                                   array('module' => 'CorePluginsAdmin', 'action' => 'plugins', 'activated' => ''),
+                                   $order = 1);
+            $menu->addPlatformItem(Piwik::translate('CorePluginsAdmin_Themes') . $themesUpdateMessage,
+                                   array('module' => 'CorePluginsAdmin', 'action' => 'themes', 'activated' => ''),
+                                   $order = 3);
+        }
+
+        if ($isMarketplaceEnabled && !$isAnonymous) {
+            $menu->addPlatformItem('CorePluginsAdmin_Marketplace',
+                                   array('module' => 'CorePluginsAdmin', 'action' => 'extend', 'activated' => ''),
+                                   $order = 5);
 
         }
     }
diff --git a/plugins/DBStats/Menu.php b/plugins/DBStats/Menu.php
index b39ff59ae5ddd2396379be35d684d9fd37ba4bad..50f7b8a047a19d3ee0ca8f4ffaa7d25171aaba48 100644
--- a/plugins/DBStats/Menu.php
+++ b/plugins/DBStats/Menu.php
@@ -17,9 +17,10 @@ class Menu extends \Piwik\Plugin\Menu
 {
     public function configureAdminMenu(MenuAdmin $menu)
     {
-        $menu->add('CoreAdminHome_MenuDiagnostic', 'DBStats_DatabaseUsage',
-                   array('module' => 'DBStats', 'action' => 'index'),
-                   Piwik::hasUserSuperUserAccess(),
-                   $order = 6);
+        if (Piwik::hasUserSuperUserAccess()) {
+            $menu->addDiagnosticItem('DBStats_DatabaseUsage',
+                                     array('module' => 'DBStats', 'action' => 'index'),
+                                     $order = 6);
+        }
     }
 }
diff --git a/plugins/DevicesDetection/Menu.php b/plugins/DevicesDetection/Menu.php
index c7ce8434b9a6742a3b2fa90e66234cee5d16805d..b956942d522ac82a01f4bac5e48efe74756f411e 100644
--- a/plugins/DevicesDetection/Menu.php
+++ b/plugins/DevicesDetection/Menu.php
@@ -18,12 +18,11 @@ class Menu extends \Piwik\Plugin\Menu
 {
     public function configureAdminMenu(MenuAdmin $menu)
     {
-        $menu->add(
-            'CoreAdminHome_MenuDiagnostic', 'DevicesDetection_DeviceDetection',
-            array('module' => 'DevicesDetection', 'action' => 'deviceDetection'),
-            Piwik::isUserHasSomeAdminAccess(),
-            $order = 40
-        );
+        if (Piwik::isUserHasSomeAdminAccess()) {
+            $menu->addDiagnosticItem('DevicesDetection_DeviceDetection',
+                                     array('module' => 'DevicesDetection', 'action' => 'deviceDetection'),
+                                     $order = 40);
+        }
     }
 
     public function configureReportingMenu(MenuReporting $menu)
diff --git a/plugins/ExamplePlugin/Menu.php b/plugins/ExamplePlugin/Menu.php
index ccebbdf4e38b902337100e64dbe33e920f00d304..1a4ed8300f2b93263012d33e2b93798cb36dd400 100644
--- a/plugins/ExamplePlugin/Menu.php
+++ b/plugins/ExamplePlugin/Menu.php
@@ -29,6 +29,12 @@ class Menu extends \Piwik\Plugin\Menu
     public function configureAdminMenu(MenuAdmin $menu)
     {
         // $menu->add('General_Settings', 'My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), true, $orderId = 30);
+        // or
+        // $menu->addSettingsItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30);
+        // $menu->addManageItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30);
+        // $menu->addPlatformItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30);
+        // $menu->addDiagnosticItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30);
+        // $menu->addDevelopmentItem('My Admin Item', array('module' => 'ExamplePlugin', 'action' => ''), $orderId = 30);
     }
 
     public function configureTopMenu(MenuTop $menu)
diff --git a/plugins/Installation/Menu.php b/plugins/Installation/Menu.php
index 606f9da50c0192d67db033c4fc0becbf7ebd9c20..7ae25c8d79fe4888089a4a549b41fa69b4212ce1 100644
--- a/plugins/Installation/Menu.php
+++ b/plugins/Installation/Menu.php
@@ -15,9 +15,10 @@ class Menu extends \Piwik\Plugin\Menu
 {
     public function configureAdminMenu(MenuAdmin $menu)
     {
-        $menu->add('General_Settings', 'Installation_SystemCheck',
-                   array('module' => 'Installation', 'action' => 'systemCheckPage'),
-                   Piwik::hasUserSuperUserAccess(),
-                   $order = 15);
+        if (Piwik::hasUserSuperUserAccess()) {
+            $menu->addSettingsItem('Installation_SystemCheck',
+                                   array('module' => 'Installation', 'action' => 'systemCheckPage'),
+                                   $order = 15);
+        }
     }
 }
diff --git a/plugins/MobileMessaging/Menu.php b/plugins/MobileMessaging/Menu.php
index 6a2ca2e1ff92db2fa0d92d188f40f9b9d78aabc8..4dea3c329d46ec38fc107a2a054817740cfffc3f 100644
--- a/plugins/MobileMessaging/Menu.php
+++ b/plugins/MobileMessaging/Menu.php
@@ -14,11 +14,9 @@ class Menu extends \Piwik\Plugin\Menu
 {
     public function configureAdminMenu(MenuAdmin $menu)
     {
-        $menu->add(
-            'General_Settings',
+        $menu->addSettingsItem(
             'MobileMessaging_SettingsMenu',
             array('module' => 'MobileMessaging', 'action' => 'index'),
-            true,
             $order = 12
         );
     }
diff --git a/plugins/PrivacyManager/Menu.php b/plugins/PrivacyManager/Menu.php
index 3750dfaa616d94856579c857906bdb10be29d0ed..5eee77622c53b5b5f60b9d50ca8614450694336e 100644
--- a/plugins/PrivacyManager/Menu.php
+++ b/plugins/PrivacyManager/Menu.php
@@ -15,9 +15,10 @@ class Menu extends \Piwik\Plugin\Menu
 {
     public function configureAdminMenu(MenuAdmin $menu)
     {
-        $menu->add('General_Settings', 'PrivacyManager_MenuPrivacySettings',
-                   array('module' => 'PrivacyManager', 'action' => 'privacySettings'),
-                   Piwik::isUserHasSomeAdminAccess(),
-                   $order = 7);
+        if (Piwik::isUserHasSomeAdminAccess()) {
+            $menu->addSettingsItem('PrivacyManager_MenuPrivacySettings',
+                                   array('module' => 'PrivacyManager', 'action' => 'privacySettings'),
+                                   $order = 7);
+        }
     }
 }
diff --git a/plugins/SitesManager/Menu.php b/plugins/SitesManager/Menu.php
index a2573d1f3e0bd07ef1d81c774ebe4ec702b9ee4c..017690f442727b1e49e6c29a68742b350dabd796 100644
--- a/plugins/SitesManager/Menu.php
+++ b/plugins/SitesManager/Menu.php
@@ -15,9 +15,10 @@ class Menu extends \Piwik\Plugin\Menu
 {
     public function configureAdminMenu(MenuAdmin $menu)
     {
-        $menu->add('CoreAdminHome_MenuManage', 'SitesManager_Sites',
-                   array('module' => 'SitesManager', 'action' => 'index'),
-                   Piwik::isUserHasSomeAdminAccess(),
-                   $order = 1);
+        if (Piwik::isUserHasSomeAdminAccess()) {
+            $menu->addManageItem('SitesManager_Sites',
+                                 array('module' => 'SitesManager', 'action' => 'index'),
+                                 $order = 1);
+        }
     }
 }
diff --git a/plugins/UserCountry/Menu.php b/plugins/UserCountry/Menu.php
index dca224572338e17d2760a9474c7ffbc058363471..505ae68c978872c21277a5510a133bedd3f31c7b 100644
--- a/plugins/UserCountry/Menu.php
+++ b/plugins/UserCountry/Menu.php
@@ -16,11 +16,10 @@ class Menu extends \Piwik\Plugin\Menu
 {
     public function configureAdminMenu(MenuAdmin $menu)
     {
-        if (UserCountry::isGeoLocationAdminEnabled()) {
-            $menu->add('General_Settings', 'UserCountry_Geolocation',
-                array('module' => 'UserCountry', 'action' => 'adminIndex'),
-                Piwik::hasUserSuperUserAccess(),
-                $order = 8);
+        if (UserCountry::isGeoLocationAdminEnabled() && Piwik::hasUserSuperUserAccess()) {
+            $menu->addSettingsItem('UserCountry_Geolocation',
+                                   array('module' => 'UserCountry', 'action' => 'adminIndex'),
+                                   $order = 8);
         }
     }
 
diff --git a/plugins/UsersManager/Menu.php b/plugins/UsersManager/Menu.php
index 32ad96f4fb2b00117b816e030149175722d62cb1..494d09542c2ef21a518af4bee6f04abfc4c52843 100644
--- a/plugins/UsersManager/Menu.php
+++ b/plugins/UsersManager/Menu.php
@@ -15,13 +15,13 @@ class Menu extends \Piwik\Plugin\Menu
 {
     public function configureAdminMenu(MenuAdmin $menu)
     {
-        $menu->add('CoreAdminHome_MenuManage', 'UsersManager_MenuUsers',
-                   array('module' => 'UsersManager', 'action' => 'index'),
-                   Piwik::isUserHasSomeAdminAccess(),
-                   $order = 2);
-        $menu->add('CoreAdminHome_MenuManage', 'UsersManager_MenuUserSettings',
-                   array('module' => 'UsersManager', 'action' => 'userSettings'),
-                   Piwik::isUserHasSomeViewAccess(),
-                   $order = 3);
+        if (Piwik::isUserHasSomeAdminAccess()) {
+            $menu->addManageItem('UsersManager_MenuUsers',
+                                 array('module' => 'UsersManager', 'action' => 'index'),
+                                 $order = 2);
+            $menu->addManageItem('UsersManager_MenuUserSettings',
+                                 array('module' => 'UsersManager', 'action' => 'userSettings'),
+                                 $order = 3);
+        }
     }
 }