  
      void EpContextMenuLvmVg(string device)
      {
-@@ -155,14 +159,13 @@
- 	}
-     }
- 
--
--    void CreateLvmMainPanel(any user_data)
--    {
--	symbol Predicate(map disk, map partition)
-+	symbol PredicateLVM(map disk, map partition)
- 	{
- 	    return StorageFields::PredicateDiskType(disk, partition, [`CT_LVM]);
- 	}
- 
-+    void CreateLvmMainPanel(any user_data)
-+    {
- 	list<symbol> fields = StorageSettings::FilterTable([ `device, `size, `format, `encrypted, `type,
- 							     `fs_type, `label, `mount_point, `mount_by,
- 							     `used_by, `lvm_metadata, `pe_size, `stripes ]);
-@@ -170,7 +173,7 @@
- 	map<string, map> target_map = Storage::GetTargetMap();
- 
- 	term table_header = StorageFields::TableHeader(fields);
--	list<term> table_contents = StorageFields::TableContents(fields, target_map, Predicate);
-+	list<term> table_contents = StorageFields::TableContents(fields, target_map, PredicateLVM);
- 	list <term> mb_items = [ `item(`id(`group), _("Volume Group")) ];
- 
- 	if ( !isempty(table_contents) )
-@@ -250,15 +253,17 @@ selected volume group.</p>");
-     }
- 
- 
--    void CreateLvmVgLvsTab(any user_data)
--    {
--	string device = (string) user_data;
--
--	symbol Predicate(map disk, map partition)
-+	string lvm_device = "";
-+	symbol PredicateLVMDevice(map disk, map partition)
- 	{
--	    return StorageFields::PredicateDiskDevice(disk, partition, [ device ]);
-+	    return StorageFields::PredicateDiskDevice(disk, partition, [ lvm_device ]);
- 	}
- 
-+
-+    void CreateLvmVgLvsTab(any user_data)
-+    {
-+	lvm_device = (string) user_data;
-+
- 	list<symbol> fields = StorageSettings::FilterTable([ `device, `size, `format, `encrypted, `type,
- 							     `fs_type, `label, `mount_point, `mount_by,
- 							     `used_by, `stripes ]);
-@@ -266,11 +271,11 @@ selected volume group.</p>");
- 	map<string, map> target_map = Storage::GetTargetMap();
- 
- 	term table_header = StorageFields::TableHeader(fields);
--	list<term> table_contents = StorageFields::TableContents(fields, target_map, Predicate);
-+	list<term> table_contents = StorageFields::TableContents(fields, target_map, PredicateLVMDevice);
- 
- 	UI::ReplaceWidget(`tab_panel,
- 			  `VBox(
--			      DiskBarGraph(device),
-+			      DiskBarGraph(lvm_device),
- 			      `Table(`id(`table), `opt(`keepSorting, `notify, `notifyContextMenu),
- 				     table_header, table_contents),
- 			      `HBox(
-@@ -308,22 +313,24 @@ selected volume group.</p>");
-     }
- 
- 
--    void CreateLvmVgPvsTab(any user_data)
--    {
--	string disk_device = (string) user_data;
--
--	symbol Predicate(map disk, map partition)
-+	string lvm_disk_device = "";
-+	symbol PredicateLVMUsedByDevice(map disk, map partition)
- 	{
--	    return StorageFields::PredicateUsedByDevice(disk, partition, [ disk_device ]);
-+	    return StorageFields::PredicateUsedByDevice(disk, partition, [ lvm_disk_device ]);
- 	}
- 
-+
-+    void CreateLvmVgPvsTab(any user_data)
-+    {
-+	lvm_disk_device = (string) user_data;
-+
- 	list<symbol> fields = StorageSettings::FilterTable([ `device, `udev_path, `udev_id, `size,
- 							     `format, `encrypted, `type, `used_by ]);
- 
- 	map<string, map> target_map = Storage::GetTargetMap();
- 
- 	term table_header = StorageFields::TableHeader(fields);
--	list<term> table_contents = StorageFields::TableContents(fields, target_map, Predicate);
-+	list<term> table_contents = StorageFields::TableContents(fields, target_map, PredicateLVMUsedByDevice);
- 
- 	UI::ReplaceWidget(`tab_panel,
- 			  `VBox(
 diff --git a/src/include/partitioning/ep-main.ycp b/src/include/partitioning/ep-main.ycp
-index 0f685c6..0f1e583 100644
+index 0f685c6..68a877b 100644
 --- a/src/include/partitioning/ep-main.ycp
 +++ b/src/include/partitioning/ep-main.ycp
-@@ -113,36 +113,10 @@
- 	    Wizard::SetNextButton(`next, next_label);
- 	}
-     }
--
--
--    void MakeNavigationTree(map open_items, list<term>& tree, map<any, map>& data)
--    {
--	// TODO: somehow use AlwaysHideDisk
--
--	data = $[ `all : $[ `create : CreateAllPanel, `handle : HandleAllPanel ],
--		  `hd : $[ `create : CreateHdMainPanel, `handle : HandleHdMainPanel ],
--		  `lvm : $[ `create : CreateLvmMainPanel, `handle : HandleLvmMainPanel ],
--		  `md : $[ `create : CreateRaidMainPanel, `handle : HandleRaidMainPanel ],
--		  `loop : $[ `create : CreateLoopMainPanel, `handle : HandleLoopMainPanel ],
--		  `dm : $[ `create : CreateDmMainPanel, `handle : HandleDmMainPanel ],
--		  `nfs : $[ `create : CreateNfsMainPanel, `handle : HandleNfsMainPanel ],
--		  `btrfs : $[ `create : CreateBtrfsMainPanel, `handle : HandleBtrfsMainPanel ],
--		  `tmpfs : $[ `create : CreateTmpfsMainPanel, `handle : HandleTmpfsMainPanel ],
--		  `unused : $[ `create : CreateUnusedPanel, `handle : HandleUnusedPanel ],
--		  `devicegraph : $[ `create : CreateDeviceGraphPanel, `refresh : RefreshDeviceGraphPanel, `handle : HandleDeviceGraphPanel ],
--		  `mountgraph : $[ `create : CreateMountGraphPanel, `refresh : RefreshDeviceGraphPanel, `handle : HandleMountGraphPanel ],
--		  `summary : $[ `create : CreateSummaryPanel ],
--		  `settings : $[ `create : CreateSettingsPanel, `handle : HandleSettingsPanel, `destroy : DestroySettingsPanel ],
--		  `log : $[ `create : CreateLogPanel, `handle : HandleLogPanel, `destroy : DestroyLogPanel ] ];
--
--	map<symbol, list> subtree = $[];
--
--	map<string, map> target_map = Storage::GetTargetMap();
--
--
-+        map open_items_nav_tree = nil;
- 	boolean open(any id)
- 	{
--	    return open_items[id]:"" == "ID";
-+	    return open_items_nav_tree[id]:"" == "ID";
- 	}
- 
- 
-@@ -183,8 +157,20 @@
+@@ -183,8 +183,20 @@
  	    switch(type)
  	    {
  		case `CT_DISK:

  * $Id$
  */
diff --git a/src/modules/StorageFields.ycp b/src/modules/StorageFields.ycp
index 5aca433..6125c6a 100644
--- a/src/modules/StorageFields.ycp
+++ b/src/modules/StorageFields.ycp
@@ -86,20 +86,21 @@ global string UsedByString(map<string, any> used_by)

 	}
     }
 
diff --git a/src/include/partitioning/ep-lib.ycp b/src/include/partitioning/ep-lib.ycp
index ce52274..3a7942a 100644
--- a/src/include/partitioning/ep-lib.ycp
+++ b/src/include/partitioning/ep-lib.ycp
@@ -102,7 +102,7 @@
