private void fetchSubCategories(Purpose purp, string prefix, ListBox lbox)
 {
     KeyValue keyValue = new KeyValue();
     keyValue.key = purp.getId().ToString();
     keyValue.value = prefix + purp.getName();
     lbox.Items.Add(keyValue);
     foreach (ComponentModel pur in purp.getSubComponents())
     {
         if (pur.GetType() == typeof(Purpose))
         {
             this.fetchSubCategories((Purpose)pur, "- " + prefix, lbox);
         }
     }
 }