diff --git a/impl-tck/pom.xml b/impl-tck/pom.xml
deleted file mode 100644
index ebe4884..0000000
--- a/impl-tck/pom.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright (c) 2020, 2022 Oracle and/or its affiliates. All rights reserved.
-
-    This program and the accompanying materials are made available under the
-    terms of the Eclipse Public License v. 2.0, which is available at
-    http://www.eclipse.org/legal/epl-2.0.
-
-    This Source Code may also be made available under the following Secondary
-    Licenses when the conditions for such availability set forth in the
-    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
-    version 2 with the GNU Classpath Exception, which is available at
-    https://www.gnu.org/software/classpath/license.html.
-
-    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.eclipse.jsonp</groupId>
-    <artifactId>tck-project</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>tck-tests</module>
-        <module>tck-tests-pluggability</module>
-    </modules>
-
-    <properties>
-        <jsonp-api.version>2.1.0</jsonp-api.version>
-        <jsonp-impl.version>1.1.0</jsonp-impl.version>
-        <jsonp-tck.version>2.1.0-SNAPSHOT</jsonp-tck.version>
-    </properties>
-
-    <dependencies>
-        <!-- this API hides the one used by the implementation -->
-<!--        <dependency>
-            <groupId>jakarta.json</groupId>
-            <artifactId>jakarta.json-api</artifactId>
-            <version>${jsonp-api.version}</version>
-            <scope>test</scope>
-        </dependency>-->
-        <!-- this is implementation only -->
-        <dependency>
-            <groupId>org.eclipse.parsson</groupId>
-            <artifactId>parsson</artifactId>
-            <version>${jsonp-impl.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <!-- this is API+Impl bundle -->
-<!--        <dependency>-->
-<!--            <groupId>org.eclipse.parsson</groupId>-->
-<!--            <artifactId>jakarta.json</artifactId>-->
-<!--            <version>${jsonp-impl.version}</version>-->
-<!--            <scope>test</scope>-->
-<!--        </dependency>-->
-    </dependencies>
-
-</project>
diff --git a/impl-tck/tck-tests-pluggability/pom.xml b/impl-tck/tck-tests-pluggability/pom.xml
deleted file mode 100644
index f5fa165..0000000
--- a/impl-tck/tck-tests-pluggability/pom.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright (c) 2020, 2022 Oracle and/or its affiliates. All rights reserved.
-
-    This program and the accompanying materials are made available under the
-    terms of the Eclipse Public License v. 2.0, which is available at
-    http://www.eclipse.org/legal/epl-2.0.
-
-    This Source Code may also be made available under the following Secondary
-    Licenses when the conditions for such availability set forth in the
-    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
-    version 2 with the GNU Classpath Exception, which is available at
-    https://www.gnu.org/software/classpath/license.html.
-
-    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.eclipse.jsonp</groupId>
-        <artifactId>tck-project</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>jakarta.json-tck-tests-pluggability</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>jakarta.json</groupId>
-            <artifactId>jakarta.json-tck-tests-pluggability</artifactId>
-            <version>${jsonp-tck.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>jakarta.json</groupId>
-            <artifactId>jakarta.json-tck-common</artifactId>
-            <version>${jsonp-tck.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.0.0-M4</version>
-                <configuration>
-                    <dependenciesToScan>
-                        <dependency>jakarta.json:jakarta.json-tck-tests-pluggability</dependency>
-                    </dependenciesToScan>
-                    <trimStackTrace>false</trimStackTrace>
-                    <failIfNoTests>true</failIfNoTests>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/impl-tck/tck-tests/pom.xml b/impl-tck/tck-tests/pom.xml
deleted file mode 100644
index 3e376a4..0000000
--- a/impl-tck/tck-tests/pom.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright (c) 2020, 2022 Oracle and/or its affiliates. All rights reserved.
-
-    This program and the accompanying materials are made available under the
-    terms of the Eclipse Public License v. 2.0, which is available at
-    http://www.eclipse.org/legal/epl-2.0.
-
-    This Source Code may also be made available under the following Secondary
-    Licenses when the conditions for such availability set forth in the
-    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
-    version 2 with the GNU Classpath Exception, which is available at
-    https://www.gnu.org/software/classpath/license.html.
-
-    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.eclipse.jsonp</groupId>
-        <artifactId>tck-project</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>jakarta.json-tck-tests</artifactId>
-
-    <dependencies>
-        <dependency>
-            <groupId>jakarta.json</groupId>
-            <artifactId>jakarta.json-tck-tests</artifactId>
-            <version>${jsonp-tck.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>jakarta.json</groupId>
-            <artifactId>jakarta.json-tck-common</artifactId>
-            <version>${jsonp-tck.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.netbeans.tools</groupId>
-            <artifactId>sigtest-maven-plugin</artifactId>
-            <version>1.4</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>3.2.0</version>
-                <executions>
-                  <execution>
-                    <id>copy</id>
-                    <phase>generate-test-sources</phase>
-                    <goals>
-                        <goal>copy</goal>
-                    </goals>
-                    <configuration>
-                      <artifactItems>
-                           <artifactItem>
-                              <groupId>jakarta.json</groupId>
-                              <artifactId>jakarta.json-api</artifactId>
-                              <version>${jsonp-api.version}</version>
-                              <type>jar</type>
-                              <overWrite>true</overWrite>
-                              <outputDirectory>${project.build.directory}/signaturedirectory</outputDirectory>
-                              <destFileName>jakarta.json-api.jar</destFileName>
-                          </artifactItem>
-                      </artifactItems>
-                    </configuration>
-                  </execution>
-                </executions>
-            </plugin> 
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.0.0-M4</version>
-                <configuration>
-                    <dependenciesToScan>
-                        <dependency>jakarta.json:jakarta.json-tck-tests</dependency>
-                    </dependenciesToScan>
-                    <trimStackTrace>false</trimStackTrace>
-                    <failIfNoTests>true</failIfNoTests>
-                    <forkCount>1</forkCount>
-                    <reuseForks>false</reuseForks>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>sigtests</id>
-                        <goals>
-                            <goal>test</goal>
-                        </goals>
-                        <configuration>
-                            <includes>
-                                <include>**/JSONPSigTest.java</include>
-                            </includes>
-                            <systemPropertyVariables>
-                                <jimage.dir>${project.build.directory}/jdk11-bundle</jimage.dir>
-                                <signature.sigTestClasspath>${project.build.directory}/signaturedirectory/jakarta.json-api.jar:${project.build.directory}/jdk11-bundle/java.base:${project.build.directory}/jdk11-bundle/java.rmi:${project.build.directory}/jdk11-bundle/java.sql:${project.build.directory}/jdk11-bundle/java.naming</signature.sigTestClasspath>
-                            </systemPropertyVariables>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>default-test</id>
-                        <configuration>
-                            <excludes>
-                                <exclude>**/JSONPSigTest.java</exclude>
-                            </excludes>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
