diff --git a/src/name-assignments/assignment-hash.cpp b/src/name-assignments/assignment-hash.cpp
index 22b6e69..4849324 100644
--- a/src/name-assignments/assignment-hash.cpp
+++ b/src/name-assignments/assignment-hash.cpp
@@ -21,8 +21,11 @@
 AssignmentHash::getFunction(const std::string &factoryParam) {
     std::list<std::string> paramList;
     size_t index = 0, startIndex = 0;
-    while ((index = factoryParam.find(":", startIndex)) != factoryParam.npos) {
-        paramList.push_back(factoryParam.substr(startIndex, index));
+    while ((index = factoryParam.find("/", startIndex)) != std::string::npos) {
+        auto component = factoryParam.substr(startIndex, index - startIndex);
+        if (!component.empty()) {
+            paramList.push_back(component);
+        }
         startIndex = index + 1;
     }
     if (startIndex != factoryParam.size()) {
diff --git a/src/name-assignments/assignment-param.cpp b/src/name-assignments/assignment-param.cpp
index c7d0cfb..c5cbf09 100644
--- a/src/name-assignments/assignment-param.cpp
+++ b/src/name-assignments/assignment-param.cpp
@@ -20,8 +20,11 @@
 AssignmentParam::getFunction(const std::string &factoryParam) {
     std::list<std::string> paramList;
     size_t index = 0, startIndex = 0;
-    while ((index = factoryParam.find(":", startIndex)) != factoryParam.npos) {
-        paramList.push_back(factoryParam.substr(startIndex, index));
+    while ((index = factoryParam.find("/", startIndex)) != std::string::npos) {
+        auto component = factoryParam.substr(startIndex, index - startIndex);
+        if (!component.empty()) {
+            paramList.push_back(component);
+        }
         startIndex = index + 1;
     }
     if (startIndex != factoryParam.size()) {
diff --git a/tests/unit-tests/config-files/config-ca-5 b/tests/unit-tests/config-files/config-ca-5
index 5e05b29..0d1e6b3 100644
--- a/tests/unit-tests/config-files/config-ca-5
+++ b/tests/unit-tests/config-files/config-ca-5
@@ -24,6 +24,6 @@
   ],
   "name-assignment":
   {
-     "param": "email"
+     "param": "/group/email"
   }
 }
\ No newline at end of file
diff --git a/tests/unit-tests/configuration.t.cpp b/tests/unit-tests/configuration.t.cpp
index 98951c1..6ad1577 100644
--- a/tests/unit-tests/configuration.t.cpp
+++ b/tests/unit-tests/configuration.t.cpp
@@ -57,8 +57,9 @@
 
   std::vector<std::tuple<std::string, std::string>> params;
   params.emplace_back("email", "1@1.edu");
+  params.emplace_back("group", "irl");
   BOOST_CHECK_EQUAL(config.m_nameAssignmentFunc(params).size(), 1);
-  BOOST_CHECK_EQUAL(config.m_nameAssignmentFunc(params)[0], Name("1@1.edu"));
+  BOOST_CHECK_EQUAL(config.m_nameAssignmentFunc(params)[0], Name("/irl/1@1.edu"));
 }
 
 BOOST_AUTO_TEST_CASE(CAConfigFileWithErrors)
diff --git a/tests/unit-tests/name-assignment.t.cpp b/tests/unit-tests/name-assignment.t.cpp
index ab3afc3..1fc7f6a 100644
--- a/tests/unit-tests/name-assignment.t.cpp
+++ b/tests/unit-tests/name-assignment.t.cpp
@@ -39,7 +39,7 @@
 BOOST_AUTO_TEST_CASE(NameAssignmentParam)
 {
   AssignmentParam paramAssignment;
-  auto func = paramAssignment.getFunction("abc:xyz");
+  auto func = paramAssignment.getFunction("/abc/xyz/");
   std::vector<std::tuple<std::string, std::string>> requirements;
   requirements.emplace_back("abc", "123");
   BOOST_CHECK_EQUAL(func(requirements).size(), 0);
@@ -56,7 +56,7 @@
 BOOST_AUTO_TEST_CASE(NameAssignmentHash)
 {
   AssignmentHash hashAssignment;
-  auto func = hashAssignment.getFunction("abc:xyz");
+  auto func = hashAssignment.getFunction("/abc/xyz");
   std::vector<std::tuple<std::string, std::string>> requirements;
   requirements.emplace_back("abc", "123");
   BOOST_CHECK_EQUAL(func(requirements).size(), 0);
