diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
index 56cdd88..f5f0bd4 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
@@ -27,7 +27,6 @@
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
-import java.util.stream.Collectors;
 
 /** Task Configuration file living in git */
 public class TaskConfig extends AbstractVersionedMetaData {
@@ -64,7 +63,7 @@
     public String preloadTask;
     public Map<String, String> properties;
     public String readyHint;
-    public List<TaskKey> subTasks;
+    public List<String> subTasks;
     public List<String> subTasksExternals;
     public List<String> subTasksFactories;
     public List<String> subTasksFiles;
@@ -86,10 +85,7 @@
       preloadTask = getString(s, KEY_PRELOAD_TASK, null);
       properties = getProperties(s, KEY_PROPERTIES_PREFIX);
       readyHint = getString(s, KEY_READY_HINT, null);
-      subTasks =
-          getStringList(s, KEY_SUBTASK).stream()
-              .map(subtask -> TaskKey.create(s.file(), subtask))
-              .collect(Collectors.toList());
+      subTasks = getStringList(s, KEY_SUBTASK);
       subTasksExternals = getStringList(s, KEY_SUBTASKS_EXTERNAL);
       subTasksFactories = getStringList(s, KEY_SUBTASKS_FACTORY);
       subTasksFiles = getStringList(s, KEY_SUBTASKS_FILE);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java
index 6b8f486..bd0b683 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java
@@ -52,10 +52,6 @@
     return subSection().file().branch();
   }
 
-  public FileKey file() {
-    return subSection().file();
-  }
-
   public abstract SubSectionKey subSection();
 
   public abstract String task();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
index d5ab48e..44fcadc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
@@ -365,11 +365,10 @@
       }
 
       protected void addSubTasks() throws IOException, StorageException {
-        for (TaskKey taskKey : task.subTasks) {
+        for (String expression : task.subTasks) {
           try {
             Optional<Task> def =
-                preloader.getOptionalTask(
-                    taskExpressionFactory.create(taskKey.file(), taskKey.task()));
+                preloader.getOptionalTask(taskExpressionFactory.create(task.file(), expression));
             if (def.isPresent()) {
               addPreloaded(def.get());
             }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java b/src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java
index 1c9ef43..c970cec 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java
@@ -14,9 +14,7 @@
 
 package com.googlesource.gerrit.plugins.task.properties;
 
-import com.googlesource.gerrit.plugins.task.TaskKey;
 import java.lang.reflect.Field;
-import java.lang.reflect.ParameterizedType;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -103,24 +101,11 @@
           field.set(cow.getForWrite(), expanded);
         }
       } else if (o instanceof List) {
-        ParameterizedType parameterizedType = (ParameterizedType) field.getGenericType();
-        Class<?> classType = (Class<?>) parameterizedType.getActualTypeArguments()[0];
-        if (classType == String.class) {
-          @SuppressWarnings("unchecked")
-          List<String> forceCheck = List.class.cast(o);
-          List<String> expanded = expand(forceCheck);
-          if (expanded != o) {
-            field.set(cow.getForWrite(), expanded);
-          }
-        } else if (classType == TaskKey.class) {
-          @SuppressWarnings("unchecked")
-          List<TaskKey> forceCheck = List.class.cast(o);
-          List<TaskKey> expanded = expandTaskKey(forceCheck);
-          if (expanded != o) {
-            field.set(cow.getForWrite(), expanded);
-          }
-        } else {
-          throw new RuntimeException(String.format("Unknown list type: %s", classType));
+        @SuppressWarnings("unchecked")
+        List<String> forceCheck = List.class.cast(o);
+        List<String> expanded = expand(forceCheck);
+        if (expanded != o) {
+          field.set(cow.getForWrite(), expanded);
         }
       }
     } catch (IllegalAccessException e) {
@@ -133,29 +118,6 @@
    * Returns expanded unmodifiable List if property found. Returns same object if no expansions
    * occurred.
    */
-  public List<TaskKey> expandTaskKey(List<TaskKey> list) {
-    if (list != null) {
-      boolean hasProperty = false;
-      List<TaskKey> expandedList = new ArrayList<>(list.size());
-      for (TaskKey value : list) {
-        String expanded = expandText(value.task());
-        boolean hasExpanded = (value.task() != expanded);
-        hasProperty = hasProperty || hasExpanded;
-        if (hasExpanded) {
-          expandedList.add(TaskKey.create(value.file(), expanded));
-        } else {
-          expandedList.add(value);
-        }
-      }
-      return hasProperty ? Collections.unmodifiableList(expandedList) : list;
-    }
-    return null;
-  }
-
-  /**
-   * Returns expanded unmodifiable List if property found. Returns same object if no expansions
-   * occurred.
-   */
   public List<String> expand(List<String> list) {
     if (list != null) {
       boolean hasProperty = false;
diff --git a/src/main/resources/Documentation/test/task_states.md b/src/main/resources/Documentation/test/task_states.md
index e3f1834..199306f 100644
--- a/src/main/resources/Documentation/test/task_states.md
+++ b/src/main/resources/Documentation/test/task_states.md
@@ -2451,144 +2451,6 @@
    ]
 }
 
-[root "Root Preload from all-projects sub-dir"]
-  preload-task = //dir/common.config^Sample relative task in sub dir
-
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root Preload from all-projects sub-dir",
-   "status" : "PASS"
-}
-
-[root "Root Preload from all-projects sub-dir which has subtask in same file"]
-  preload-task = //dir/common.config^Sample relative task in sub dir with subtask from same file
-
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root Preload from all-projects sub-dir which has subtask in same file",
-   "status" : "PASS",
-   "subTasks" : [
-      {
-         "applicable" : true,
-         "hasPass" : true,
-         "name" : "Sample relative task in sub dir",
-         "status" : "PASS"
-      }
-   ]
-}
-
-[root "Root Preload from all-projects sub-dir which has subtask in different file"]
-  preload-task = //dir/common.config^Sample relative task in sub dir with subtask from different file
-
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root Preload from all-projects sub-dir which has subtask in different file",
-   "status" : "PASS",
-   "subTasks" : [
-      {
-         "applicable" : true,
-         "hasPass" : true,
-         "name" : "Passing task",
-         "status" : "PASS"
-      }
-   ]
-}
-
-[root "Root Preload from user ref"]
-  preload-task = @testuser/dir/relative.config^Relative Task
-
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root Preload from user ref",
-   "status" : "PASS"
-}
-
-[root "Root Preload from user ref which has subtask in same file"]
-  preload-task = @testuser/dir/relative.config^Relative Task with subtask
-
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root Preload from user ref which has subtask in same file",
-   "status" : "PASS",
-   "subTasks" : [
-      {
-         "applicable" : true,
-         "hasPass" : true,
-         "name" : "Passing task",
-         "status" : "PASS"
-      }
-   ]
-}
-
-[root "Root Preload from user ref which has subtask in different file"]
-  preload-task = @testuser/dir/relative.config^Import All-Projects root task
-
-{
-   "applicable" : true,
-   "hasPass" : false,
-   "name" : "Root Preload from user ref which has subtask in different file",
-   "status" : "PASS",
-   "subTasks" : [
-      {
-         "applicable" : true,
-         "hasPass" : true,
-         "name" : "Subtask PASS",
-         "status" : "PASS"
-      }
-   ]
-}
-
-[root "Root Preload from group ref"]
-  preload-task = %{non_secret_group_name_without_space}^task in group root config file 1
-
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root Preload from group ref",
-   "status" : "PASS"
-}
-
-[root "Root Preload from group ref which has subtask in same file"]
-  preload-task = %{non_secret_group_name_without_space}^task in group root with subtask
-
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root Preload from group ref which has subtask in same file",
-   "status" : "PASS",
-   "subTasks" : [
-      {
-         "applicable" : true,
-         "hasPass" : true,
-         "name" : "Passing task",
-         "status" : "PASS"
-      }
-   ]
-}
-
-[root "Root Preload from group ref which has subtask in different file"]
-  preload-task = %{non_secret_group_name_without_space}^task in group root with subtask from all-projects
-
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root Preload from group ref which has subtask in different file",
-   "status" : "PASS",
-   "subTasks" : [
-      {
-         "applicable" : true,
-         "hasPass" : true,
-         "name" : "Subtask PASS",
-         "status" : "PASS"
-      }
-   ]
-}
-
 [root "Root Preload from all-projects sub-dir which has preload-task in same file"]
   preload-task = //dir/common.config^Sample task in sub dir with preload-task from same file
 
@@ -2596,15 +2458,7 @@
    "applicable" : true,
    "hasPass" : true,
    "name" : "Root Preload from all-projects sub-dir which has preload-task in same file",
-   "status" : "PASS",
-   "subTasks" : [
-      {
-         "applicable" : true,
-         "hasPass" : true,
-         "name" : "Sample relative task in sub dir",
-         "status" : "PASS"
-      }
-   ]
+   "status" : "PASS"
 }
 
 [root "Root Preload from all-projects sub-dir which has preload-task in different file"]
@@ -3211,10 +3065,6 @@
 ```
 [task "Root Import task from subdir using relative syntax"]
     subtask = dir/common.config^Sample relative task in sub dir
-
-[task "Passing task"]
-    applicable = is:open
-    pass = True
 ```
 
 file: `All-Projects:refs/meta/config:task/dir/common.config`
@@ -3223,22 +3073,12 @@
     applicable = is:open
     pass = is:open
 
-[task "Sample relative task in sub dir with subtask from same file"]
-    applicable = is:open
-    pass = is:open
-    subtask = Sample relative task in sub dir
-
-[task "Sample relative task in sub dir with subtask from different file"]
-    applicable = is:open
-    pass = is:open
-    subtask = //relative.config^Passing task
-
 [task "Root Import task from root task.config"]
     applicable = is:open
     subtask = ^Subtask PASS
 
 [task "Sample task in sub dir with preload-task from same file"]
-    preload-task = Sample relative task in sub dir with subtask from same file
+    preload-task = Sample relative task in sub dir
 
 [task "Sample task in sub dir with preload-task from different file"]
     preload-task = %{non_secret_group_name_without_space}/foo/bar.config^Absolute Task 1
@@ -3454,15 +3294,6 @@
   applicable = is:open
   pass = is:open
 
-[task "Relative Task with subtask"]
-  applicable = is:open
-  pass = is:open
-  subtask = Passing task
-
-[task "Passing task"]
-  applicable = is:open
-  pass = True
-
 [task "Import All-Projects root task"]
   applicable = is:open
   subtask = //^Subtask PASS
@@ -3514,20 +3345,6 @@
   applicable = is:open
   pass = is:open
 
-[task "task in group root with subtask"]
-  applicable = is:open
-  pass = is:open
-  subtask = Passing task
-
-[task "Passing task"]
-  applicable = is:open
-  pass = True
-
-[task "task in group root with subtask from all-projects"]
-  applicable = is:open
-  pass = is:open
-  subtask = //^Subtask PASS
-
 [task "task in group root config file 2"]
   applicable = is:open
   pass = is:open
