void TestR4(string edit_action)
 {
   DBElement<string, List<string>> element = new DBElement<string, List<string>>();
   element.addElementData("element1", "test element for editing key-value pair to databse with value as string", DateTime.Now, new List<string> { "enum_one", "enum_two" }, new List<string> { "test element1's payload" });
   enum_db.insert("enum_one", element);
   "Demonstrating Requirement #4".title();
   DBElement<string, List<string>> edit_element = new DBElement<string, List<string>>();
   enum_db.getValue("enum_one", out edit_element);
   "Element to be edited".title();
   edit_element.showEnumerableElement();
   WriteLine();
   "Database before editing".title();
   enum_db.showEnumerableDB();
   WriteLine();
   switch (edit_action)
   {
     case "edit metadata":
       edit_element.edit_metadata(edit_action);
       goto default;
     case "add children":
       edit_element.add_children(edit_action);
       goto default;
     case "remove children":
       edit_element.remove_children(edit_action);
       goto default;
     case "edit payload":
       edit_element.edit_payload();
       goto default;
     default:
       "element after editing".title();
       edit_element.showEnumerableElement();
       "Databaser after editing".title();
       enum_db.showEnumerableDB();
       WriteLine();
       break;
   }  
 }