diff --git a/README.md b/README.md
index a9bff224b6fc338049fe4a1de9cdef343ab8869d..53c1f6b68cd66990c94820a91ea59f5dd11b27af 100644
--- a/README.md
+++ b/README.md
@@ -1,77 +1,98 @@
-# Simple fair-evaluator extension
-This extension extends the functionality of the connectors by automatically extracting the metadata of the file. Which is used for creating asset and for calculating the FAIRness score.
-We test the fair-evaluator extension with existing EDC sample [transfer-01-file-transfer](transfer/transfer-01-file-transfer). 
+# Simple metadata-extractor extension
+This extension automatically extracting the metadata of a file. Which can be used for creating an asset or for calculating the FAIRness score.
+We test the metadata-extractor extension using existing EDC sample [transfer-01-file-transfer](sample/transfer/transfer-01-file-transfer). 
 The sample transmits a test file from one connector to another connector. Before transferring the file it adds the file as an asset but while creating the asset object we have to hardcode the metadata of the file.
-We are extending the functionality of the [transfer-01-file-transfer](transfer/transfer-01-file-transfer) sample by automating the asset creation process and getting a fairness score for each asset by using fair-evaluator
+By using the extension we automate the asset creation process. Another usecase of extracted metatdata is for calculating the fairness score. The [FairService](metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/FairService.java) class is based on  [Fairness evaluator](https://gitlab.fit.fraunhofer.de/abu.ibne.bayazid/fairevaluator) developed by Abu Ibne Bayazid. 
+We use this repository with minor changes to calculate the Fairness score in our extension.
 
-The fair evaluator extension is based on the [Fairness evaluator](https://gitlab.fit.fraunhofer.de/abu.ibne.bayazid/fairevaluator) developed by Abu Ibne Bayazid. 
-We use this repository with minor changes to calculate the Fairness score in the [fair-evaluator](transfer/transfer-01-file-transfer/fair-evaluator) extension and our main contribution is the automated extraction of the metadata.
-In our implementation, we focused on both retrievable and extractable metadata. For the testing of our approach; PDF and Word documents have been chosen as a form of input data;
-these formats are very commonly used types of files; especially for research in articles or reports. More detail about extension can be found in this [document](https://docs.google.com/document/d/1FRK8om-RnSXhTE8Qzupt6az1xSpNtqhMPvlIQTz3bGY/edit#)
+In our extension, we focused on both retrievable and extractable metadata. For now, extractable metadata only support PDF and Word documents; these formats are very commonly used types of files; especially for research in articles or reports. More detail about extension can be found in this [document](https://docs.google.com/document/d/1FRK8om-RnSXhTE8Qzupt6az1xSpNtqhMPvlIQTz3bGY/edit#)
 
 ## How to use the extension
 To extract metadata form text file we used NLP/ML and in order to execute NLP/ML models for the metadata extraction python was used for the task due to its inherent flexibility and an extensive collection of NLP/ML packages;
 
-Before we use the extension, a recent Python version needs to be [downloaded](https://www.python.org/downloads/) and installed in the system; as well as the required packages which are contained in the [requirements.txt](transfer/transfer-01-file-transfer/fair-evaluator/src/main/resources/requirement.txt) file,
+Before we use the extension, a recent Python version needs to be [downloaded](https://www.python.org/downloads/) and installed in the system; as well as the required packages which are contained in the [requirements.txt](metadata-extractor/src/main/resources/requirement.txt) file,
 the whole list of requirements could be installed using the following command ```pip install -r requirements.txt```.
 
-The [text_metadata_extractor.py](transfer/transfer-01-file-transfer/fair-evaluator/src/main/resources/text_metadata_extractor.py) python file contains a set of functions that extract metadata (title, keywords, summary…) from the pdf and Word document.
+The [text_metadata_extractor.py](metadata-extractor/src/main/resources/text_metadata_extractor.py) python file contains a set of functions that extract metadata (title, keywords, summary…) from the pdf and Word document.
 This file is invoked by the main Java class. There are several ways of calling Python scripts in a Java class; the one that we chose consists of using a class called `ProcessBuilder`
 then we afterward redirect the output of the Python script to the Java output to be used for the next step.
 
+### Approach 1:  Use extension as an Api.
+Extension can be used directly as an Api by passing the asset path, with other optional parameter. Turn off the provider and consumer connector and build and run metadata-extractor extension.
+
+```bash
+.\gradlew metadata-extractor:build
+java -Dedc.fs.config=metadata-extractor/config.properties -jar metadata-extractor/build/libs/file-metadata-extractor.jar
+```
+In another terminal we can call the Api by passing the assetPath
+```bash
+curl -X GET "http://localhost:5000/api/extract-metadata?assetPath=C:\\Users\\{user}\\Desktop\\english-test.pdf&assetPid=https://doi.org/10.48550/arXiv.2302.12813&assetDataLink=https://arxiv.org/pdf/2302.12813.pdf"
+```
+This api will return the asset properties and fairness score. Below we can see an example To test the extension using English document we used [this](https://arxiv.org/pdf/2302.12813.pdf) paper and got the following properties:
+![image 2](https://github.com/eclipse-edc/Connector/assets/13449847/16687a4a-8b71-4ed7-8aab-845262eb3866)
+
+### Approach 2:  Use extension as a dependency.
 The extensions can be used by adding the dependency to the Gradle file of other extensions.
-In this case, the [transfer-file-local](/transfer/transfer-01-file-transfer/transfer-file-local) extension (it's part of the provider connector) will use the fair-evaluator.
-We add the dependency by adding the following line into the [Gradle file](transfer/transfer-01-file-transfer/transfer-file-local/build.gradle.kts).
+In this case, the [transfer-file-local](sample/transfer/transfer-01-file-transfer/transfer-file-local) extension (it's part of the provider connector) will use the metadata-extractor.
+We add the dependency by adding the following line into the [Gradle file](sample/transfer/transfer-01-file-transfer/transfer-file-local/build.gradle.kts).
 
 ```kotlin
-implementation(project(":transfer:transfer-01-file-transfer:fair-evaluator"))
+implementation(project(":metadata-extractor"))
 ```
 
-And then inject a dependency  of ```Class FairnessScoreEvaluator``` by adding the following line in [FileTransferExtension](transfer/transfer-01-file-transfer/transfer-file-local/src/main/java/org/eclipse/edc/sample/extension/api/FileTransferExtension.java)
+And then inject a dependency  of ```class MetadataExtractor``` by adding the following line in [FileTransferExtension](sample/transfer/transfer-01-file-transfer/transfer-file-local/src/main/java/org/eclipse/edc/sample/extension/api/FileTransferExtension.java)
 
 ```java
 @Inject
-private FairnessScoreEvaluator fairnessScoreEvaluator;
+private MetadataExtractor metadataExtractor;
 ```
-Once we inject the dependency we have the object of ```Class FairnessScoreEvaluator```. Using this object we can add properties automatically while creating an asset.
+Once we inject the dependency we have the object of ```class MetadataExtractor```. Using this object we can add properties automatically while creating an asset.
 ```java
-var fairnessProperties = fairnessScoreEvaluator.getFAIRScore(assetPath.toString(),assetPID,assetDataLink,assetVersion);
-var assetId = "test-document";
-var asset = Asset.Builder.newInstance()
+        var metadata = metadataExtractor.getMetadata(assetPath.toString(), assetpid, assetDataLink, assetVersion);
+        var asset = Asset.Builder.newInstance()
         .id(assetId)
-        .properties(fairnessProperties)
+        .contentType(metadata.remove("mimeType").toString())
+        .name(metadata.remove("name").toString())
+        .description(metadata.remove("description").toString())
+        .version(metadata.remove("version").toString())
+        .properties(metadata)
         .build();
 ```
-## Running the connectors:
+#### Running the connectors:
 
 First, we have to build the jar file for provider and consumer connector:
 ```bash
-.\gradlew transfer:transfer-01-file-transfer:file-transfer-provider:build
-.\gradlew transfer:transfer-01-file-transfer:file-transfer-consumer:build
+.\gradlew sample:transfer:transfer-01-file-transfer:file-transfer-provider:build
+.\gradlew sample:transfer:transfer-01-file-transfer:file-transfer-consumer:build
 ````
 
 Now we run the provider connector in one terminal.
 ```bash
-java -Dedc.fs.config=transfer/transfer-01-file-transfer/file-transfer-provider/config.properties -jar transfer/transfer-01-file-transfer/file-transfer-provider/build/libs/provider.jar
+java -Dedc.fs.config=sample/transfer/transfer-01-file-transfer/file-transfer-provider/config.properties -jar sample/transfer/transfer-01-file-transfer/file-transfer-provider/build/libs/provider.jar
 ```
 And consumer connector in another terminal.
 ```bash
-java -Dedc.fs.config=transfer/transfer-01-file-transfer/file-transfer-consumer/config.properties -jar transfer/transfer-01-file-transfer/file-transfer-consumer/build/libs/consumer.jar
+java -Dedc.fs.config=sample/transfer/transfer-01-file-transfer/file-transfer-consumer/config.properties -jar sample/transfer/transfer-01-file-transfer/file-transfer-consumer/build/libs/consumer.jar
 ```
-Since the fair-evaluator is part of the provider extension, it runs together with the provider connector. Provider connector creates the in-memory asset object with the help of [fair-evaluator](/transfer/transfer-01-file-transfer/fair-evaluator) and [file-local-transfer](transfer/transfer-01-file-transfer/transfer-file-local) extension.
+Provider connector creates the in-memory asset object with the help of [metadtata-extractor](metadata-extractor) and [file-local-transfer](sample/transfer/transfer-01-file-transfer/transfer-file-local) extension.
 
 Now in third terminal we should be able to get providers catalog detail on consumer side.
 ```bash
-curl -X POST "http://localhost:9192/api/v1/management/catalog/request" --header "X-Api-Key: password" --header "Content-Type: application/json" --data-raw "{\"providerUrl\": \"http://localhost:8282/api/v1/ids/data\"}"
+curl -X POST "http://localhost:9192/management/v2/catalog/request" --header "X-Api-Key: password" --header "Content-Type: application/json" --data-raw "{\"@context\": {\"edc\": \"https://w3id.org/edc/v0.0.1/ns/\"}, \"providerUrl\": \"http://localhost:8282/protocol\",\"protocol\": \"dataspace-protocol-http\"}"
 ```
+This api will return the asset, contracts, policies detail available in the provider catalog. Below we can see an example To test the extension using English document we used [this](https://arxiv.org/pdf/2302.12813.pdf) paper and got the following properties:
+![image 1](https://github.com/eclipse-edc/Connector/assets/13449847/8123b2af-1f98-48b8-826c-054825b4b856)
 
-This api will return the asset, contracts, policies detail available in the provider catalog. Below we can see an example.
-To test the extension using English document we used [this](https://arxiv.org/pdf/2302.12813.pdf) paper and got the following properties:
-
-![example](/uploads/4f6a06a3665dcac3ed10239244a428d2/unnamed.png)
 
-## Note:
-The Sample support filesystem-based-configuration and source file path should be updated [here](transfer/transfer-01-file-transfer/file-transfer-provider/config.properties) and the target file path should be [here](transfer/transfer-01-file-transfer/filetransfer.json).
+#### Note:
+The Sample support filesystem-based-configuration and source file path should be updated [here](sample/transfer/transfer-01-file-transfer/file-transfer-provider/config.properties) and the target file path should be [here](sample/transfer/transfer-01-file-transfer/filetransfer.json).
 
 Now that the asset has been created we can run the consumer connector and request to transfer the file. 
-This process is the same as transfer-01-file-transfer and is out of the scope of this documentation. Please find the steps to run the complete file transfer process [here](transfer/transfer-01-file-transfer/README.md).               
\ No newline at end of file
+This process is the same as transfer-01-file-transfer and is out of the scope of this documentation. Only difference it `transfer` module is inside `sample/transfer`, so these command will change:
+```bash
+#contract contractnegotiations
+curl -X POST -H "Content-Type: application/json" -H "X-Api-Key: password" -d @sample/transfer/transfer-01-file-transfer/contractoffer.json "http://localhost:9192/management/v2/contractnegotiations"
+#transferprocesses
+curl -X POST -H "Content-Type: application/json" -H "X-Api-Key: password" -d @sample/transfer/transfer-01-file-transfer/filetransfer.json "http://localhost:9192/management/v2/transferprocesses"
+```
+Please find the steps to run the complete file transfer process [here](sample/transfer/transfer-01-file-transfer/README.md).
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 5cd80594a422f4a8367e2e4b4e80ba34b6120494..4123995f6265ae73769f023defe43213064fa20a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,9 +1,4 @@
-groupId=org.eclipse.edc
-edcVersion=0.0.1-milestone-8
-defaultVersion=0.0.1-SNAPSHOT
-javaVersion=11
-
-# configure the build:
-annotationProcessorVersion=0.0.1-SNAPSHOT
-edcGradlePluginsVersion=0.0.1-SNAPSHOT
-metaModelVersion=0.0.1-SNAPSHOT
+group=org.eclipse.edc
+edcVersion=0.1.0
+rsApi=3.1.0
+javaVersion=17
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..943f0cbfa754578e88a3dae77fce6e3dea56edbf 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index da1db5f04e889adf040f177df156bc2887e0f27c..42defcc94b345ce2f6cd2ce570b102db6e4b097e 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
+networkTimeout=10000
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index 1b6c787337ffb79f0e3cf8b1e9f00f680a959de1..65dcd68d65c82f2a5338fded4af852f9caf93b93 100644
--- a/gradlew
+++ b/gradlew
@@ -55,7 +55,7 @@
 #       Darwin, MinGW, and NonStop.
 #
 #   (3) This script is generated from the Groovy template
-#       https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+#       https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
 #       within the Gradle project.
 #
 #       You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,10 +80,10 @@ do
     esac
 done
 
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-
-APP_NAME="Gradle"
+# This is normally unused
+# shellcheck disable=SC2034
 APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
 
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
@@ -143,12 +143,16 @@ fi
 if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
     case $MAX_FD in #(
       max*)
+        # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+        # shellcheck disable=SC3045 
         MAX_FD=$( ulimit -H -n ) ||
             warn "Could not query maximum file descriptor limit"
     esac
     case $MAX_FD in  #(
       '' | soft) :;; #(
       *)
+        # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+        # shellcheck disable=SC3045 
         ulimit -n "$MAX_FD" ||
             warn "Could not set maximum file descriptor limit to $MAX_FD"
     esac
@@ -205,6 +209,12 @@ set -- \
         org.gradle.wrapper.GradleWrapperMain \
         "$@"
 
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+    die "xargs is not available"
+fi
+
 # Use "xargs" to parse quoted args.
 #
 # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/gradlew.bat b/gradlew.bat
index 107acd32c4e687021ef32db511e8a206129b88ec..93e3f59f135dd2dd498de4beb5c64338cc33beeb 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -14,7 +14,7 @@
 @rem limitations under the License.
 @rem
 
-@if "%DEBUG%" == "" @echo off
+@if "%DEBUG%"=="" @echo off
 @rem ##########################################################################
 @rem
 @rem  Gradle startup script for Windows
@@ -25,7 +25,8 @@
 if "%OS%"=="Windows_NT" setlocal
 
 set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
 set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
@@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
 
 set JAVA_EXE=java.exe
 %JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if %ERRORLEVEL% equ 0 goto execute
 
 echo.
 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
 
 :end
 @rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+if %ERRORLEVEL% equ 0 goto mainEnd
 
 :fail
 rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
 rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
 
 :mainEnd
 if "%OS%"=="Windows_NT" endlocal
diff --git a/metadata-extractor/build.gradle.kts b/metadata-extractor/build.gradle.kts
index 32ae31950637855586c9ad02ad4bf8feeba46323..cf281c102fc434cb3bafa0460c7c8b7493321612 100644
--- a/metadata-extractor/build.gradle.kts
+++ b/metadata-extractor/build.gradle.kts
@@ -9,7 +9,6 @@
  *
  *  Contributors:
  *       Microsoft Corporation - initial API and implementation
- *       Fraunhofer Institute for Software and Systems Engineering - added dependencies
  *
  */
 
@@ -32,7 +31,6 @@ dependencies {
 
 }
 
-
 application {
     mainClass.set("org.eclipse.edc.boot.system.runtime.BaseRuntime")
 }
@@ -40,5 +38,6 @@ application {
 tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> {
     exclude("**/pom.properties", "**/pom.xm")
     mergeServiceFiles()
-    archiveFileName.set("fair-evaluator.jar")
-}
\ No newline at end of file
+    archiveFileName.set("file-metadata-extractor.jar")
+
+}
diff --git a/metadata-extractor/config.properties b/metadata-extractor/config.properties
index de5e819b2b12dd53225dcaac2843eb08a75beea5..30236b9708aff9b469c787062730d61d6477324c 100644
--- a/metadata-extractor/config.properties
+++ b/metadata-extractor/config.properties
@@ -1,6 +1,6 @@
 web.http.port=5000
 web.http.path=/api
 
-#.\gradlew fair-evaluator:build
-#java -Dedc.fs.config=fair-evaluator/config.properties -jar fair-evaluator/build/libs/fair-evaluator.jar
-#curl -X GET "http://localhost:5000/api/get-fairness-score?assetPath=C:\\Users\\akhan\\Desktop\\german-paper.pdf"
+#.\gradlew metadata-extractor:build
+#java -Dedc.fs.config=metadata-extractor/config.properties -jar metadata-extractor/build/libs/file-metadata-extractor.jar
+#curl -X GET "http://localhost:5000/api/extract-metadata?assetPath=C:\\Users\\akhan\\Desktop\\german-paper.pdf"
diff --git a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/ExtractorApiController.java b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/ExtractorApiController.java
index beffae792be014812c743610922399370d48a863..f8c5a605a5e07803ee2e94c59b768f6139ac1f3e 100644
--- a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/ExtractorApiController.java
+++ b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/ExtractorApiController.java
@@ -34,8 +34,8 @@ public class ExtractorApiController {
 
 
     @GET
-    @Path("get-fairness-score")
-    public Response getFairnessScore(
+    @Path("extract-metadata")
+    public Response extractMetadata(
             @QueryParam("assetPath") String assetPath,
             @QueryParam("assetpid") String assetPid,
             @QueryParam("assetDataLink") String assetDataLink,
@@ -49,21 +49,16 @@ public class ExtractorApiController {
                     .type(MediaType.APPLICATION_JSON)
                     .build();
         }
-        if (assetPid != null) {
-            assetPid = "";
-        }
-        if (assetDataLink != null) {
-            assetDataLink = "";
-        }
-        if (assetVersion != null) {
-            assetVersion = "";
-        }
+
+        assetPid = (assetPid != null) ? assetPid : "";
+        assetDataLink = (assetDataLink != null) ? assetDataLink : "";
+        assetVersion = (assetVersion != null) ? assetVersion : "";
 
         // Create an object of the class responsible for metadata extraction
         MetadataExtractor metadataExtractor = new MetadataExtractor(monitor);
 
-        // Call the method to get the fair score and metadata
-        var fairnessProperties = metadataExtractor.getFairScore(
+        // Call the method to get the metadata
+        var properties = metadataExtractor.getMetadata(
                 assetPath,
                 assetPid,
                 assetDataLink,
@@ -71,7 +66,7 @@ public class ExtractorApiController {
         );
 
         // Return the metadata as a JSON response
-        return Response.ok(fairnessProperties)
+        return Response.ok(properties)
                 .type(MediaType.APPLICATION_JSON)
                 .build();
     }
diff --git a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/FairService.java b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/FairService.java
index e5fe5b826e45b57e02c207b9d3dc5296c5beca37..5cd09447d6d7f05325305a81ef4a4e15317f0c1a 100644
--- a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/FairService.java
+++ b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/FairService.java
@@ -14,8 +14,8 @@ package org.fraunhofer.fit.extension.extractor;
 import com.github.tbouron.SpdxLicense;
 import org.eclipse.edc.spi.monitor.Monitor;
 import org.fraunhofer.fit.extension.extractor.model.FairResponseModel;
-import org.fraunhofer.fit.extension.extractor.model.FairvalidatorModel;
 import org.fraunhofer.fit.extension.extractor.model.ValidationResponseModel;
+import org.fraunhofer.fit.extension.extractor.model.ValidatorModel;
 
 import java.net.HttpURLConnection;
 import java.net.URL;
@@ -37,7 +37,7 @@ public class FairService {
         this.monitor = monitor;
     }
 
-    public ValidationResponseModel getValidation(FairvalidatorModel fmodel) {
+    public ValidationResponseModel getValidation(ValidatorModel fmodel) {
 
         ValidationResponseModel validationResponseModel = new ValidationResponseModel();
         List<String> msgList = new ArrayList<String>();
diff --git a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/MetadataExtractor.java b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/MetadataExtractor.java
index f31823bdbe21c83935a09d82f35e20548fe75400..0b8ee8986de26d67324283e85961c03f08f1b2eb 100644
--- a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/MetadataExtractor.java
+++ b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/MetadataExtractor.java
@@ -12,8 +12,8 @@
 package org.fraunhofer.fit.extension.extractor;
 
 import org.eclipse.edc.spi.monitor.Monitor;
-import org.fraunhofer.fit.extension.extractor.model.FairvalidatorModel;
 import org.fraunhofer.fit.extension.extractor.model.ValidationResponseModel;
+import org.fraunhofer.fit.extension.extractor.model.ValidatorModel;
 
 import java.io.File;
 import java.io.IOException;
@@ -32,33 +32,33 @@ public class MetadataExtractor {
         this.monitor = monitor;
     }
 
-    public  Map<String, Object> getFairScore(String filePath, String pid, String dataLink, String version) {
+    public  Map<String, Object> getMetadata(String filePath, String pid, String dataLink, String version) {
 
         monitor.info("================ Running Fair Score evaluator ========");
 
-        FairvalidatorModel faiRvalidatorModel = extractBasicMetadata(filePath, pid, dataLink, version);
+        ValidatorModel validatorModel = extractBasicMetadata(filePath, pid, dataLink, version);
 
-        if (faiRvalidatorModel.getMimeType().startsWith("application/")) {
+        if (validatorModel.getMimeType().startsWith("application/pdf")) {
             TextMetadataExtractor textMetadataExtractor = new TextMetadataExtractor(filePath, monitor);
-            faiRvalidatorModel = textMetadataExtractor.getTextMetadata(faiRvalidatorModel);
+            validatorModel = textMetadataExtractor.getTextMetadata(validatorModel);
         }
 
         FairService fairService = new FairService(monitor);
-        ValidationResponseModel validationResponseModel = fairService.getValidation(faiRvalidatorModel);
+        ValidationResponseModel validationResponseModel = fairService.getValidation(validatorModel);
 
-        faiRvalidatorModel.setValidationScore(validationResponseModel.getValidationScore());
-        faiRvalidatorModel.setValidationScoreDesc(validationResponseModel.getValidationScoreDesc());
+        validatorModel.setValidationScore(validationResponseModel.getValidationScore());
+        validatorModel.setValidationScoreDesc(validationResponseModel.getValidationScoreDesc());
 
-        faiRvalidatorModel.print();
+        validatorModel.print();
         validationResponseModel.print();
 
         monitor.info("================ Fair Score evaluator Completed ========");
-        return faiRvalidatorModel.getProperties();
+        return validatorModel.getProperties();
     }
 
-    private FairvalidatorModel extractBasicMetadata(String filePath, String pid, String dataLink, String version) {
+    private ValidatorModel extractBasicMetadata(String filePath, String pid, String dataLink, String version) {
 
-        FairvalidatorModel metadata = new FairvalidatorModel();
+        ValidatorModel metadata = new ValidatorModel();
         File file = new File(filePath);
 
         if (file.isFile() && file.exists()) {
@@ -79,7 +79,7 @@ public class MetadataExtractor {
                 metadata.setDataLink(dataLink);
                 metadata.setContactPoint("");
                 metadata.setVersion(version);
-                metadata.setDataAccessLevel(""); // access level will be infer by PID and DataLink
+                metadata.setDataAccessLevel(""); // access level will be inferred by PID and DataLink
 
             } catch (IOException e) {
                 e.printStackTrace();
diff --git a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/MetadataExtractorExtension.java b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/MetadataExtractorExtension.java
index 775c6af1ed5be71a3274a2629f13f3f646673358..c561501e76f8c444115fc4216985f1a144dd1873 100644
--- a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/MetadataExtractorExtension.java
+++ b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/MetadataExtractorExtension.java
@@ -35,7 +35,7 @@ public class MetadataExtractorExtension implements ServiceExtension {
     }
 
     @Provider(isDefault = true)
-    public MetadataExtractor fairEvaluator() {
+    public MetadataExtractor metadataExtractor() {
         return new MetadataExtractor(monitor);
     }
 }
\ No newline at end of file
diff --git a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/TextMetadataExtractor.java b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/TextMetadataExtractor.java
index 97ea2916af709d23b8d0b5cf32d8dda28ee650b9..9d283b50ad022a79e7ca1d7543a8afcaed7052ce 100644
--- a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/TextMetadataExtractor.java
+++ b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/TextMetadataExtractor.java
@@ -12,7 +12,7 @@
 package org.fraunhofer.fit.extension.extractor;
 
 import org.eclipse.edc.spi.monitor.Monitor;
-import org.fraunhofer.fit.extension.extractor.model.FairvalidatorModel;
+import org.fraunhofer.fit.extension.extractor.model.ValidatorModel;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -95,13 +95,13 @@ public class TextMetadataExtractor {
 
     }
 
-    public FairvalidatorModel getTextMetadata(FairvalidatorModel faiRvalidatorModel) {
-        faiRvalidatorModel.setTitle(this.title);
-        faiRvalidatorModel.setDescription(this.summary);
-        faiRvalidatorModel.setKeywords(this.keywords.split(","));
-        faiRvalidatorModel.setLanguage(this.language);
+    public ValidatorModel getTextMetadata(ValidatorModel validatorModel) {
+        validatorModel.setTitle(this.title);
+        validatorModel.setDescription(this.summary);
+        validatorModel.setKeywords(this.keywords.split(","));
+        validatorModel.setLanguage(this.language);
 
-        return faiRvalidatorModel;
+        return validatorModel;
     }
 
 }
diff --git a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/model/ValidatorModel.java b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/model/ValidatorModel.java
index 048470638dc0176cf53a93b928622d11f32e6540..4d72fd2410030d3c737e6a8b22351c2f16d76258 100644
--- a/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/model/ValidatorModel.java
+++ b/metadata-extractor/src/main/java/org/fraunhofer/fit/extension/extractor/model/ValidatorModel.java
@@ -15,7 +15,7 @@ import java.lang.reflect.Field;
 import java.util.HashMap;
 import java.util.Map;
 
-public class FairvalidatorModel {
+public class ValidatorModel {
 
     private String name;
     private String pid;
@@ -175,7 +175,7 @@ public class FairvalidatorModel {
     public void print() {
 
         System.out.println("======= printing all FAIR validator ============");
-        Field[] fields = FairvalidatorModel.class.getDeclaredFields();
+        Field[] fields = ValidatorModel.class.getDeclaredFields();
 
         for (Field field : fields) {
             field.setAccessible(true);
@@ -192,7 +192,7 @@ public class FairvalidatorModel {
     public Map<String, Object> getProperties() {
 
         Map<String, Object> properties = new HashMap<>();
-        Field[] fields = FairvalidatorModel.class.getDeclaredFields();
+        Field[] fields = ValidatorModel.class.getDeclaredFields();
 
         for (Field field : fields) {
             field.setAccessible(true);
diff --git a/resources/edc-checkstyle-config.xml b/resources/edc-checkstyle-config.xml
index 3f3363d502a9c7a176f78708f82ff3d9bc71c4f0..ae5dbb2be6d56d6674849b0387c0929b473b24a5 100644
--- a/resources/edc-checkstyle-config.xml
+++ b/resources/edc-checkstyle-config.xml
@@ -50,8 +50,8 @@
     <module name="RegexpHeader">
         <property name="severity" value="warning"/>
         <property name="fileExtensions" value="java"/>
-        <property name="header"
-                  value="^/\*$\n^ \*  Copyright \(c\) 20\d\d((,| -) 20\d{2})? [A-Za-z].+\S$\n^ \*$\n^ \*  This program and the accompanying materials are made available under the$\n^ \*  terms of the Apache License, Version 2\.0 which is available at$\n^ \*  https://www\.apache\.org/licenses/LICENSE-2\.0$\n^ \*$\n^ \*  SPDX-License-Identifier: Apache-2\.0$\n^ \*$\n^ \*  Contributors:$\n^ \*       \S.*\S$\n^ \*$\n^ \*/$\n^$\n^package"/>
+<!--        <property name="header"-->
+<!--                  value="^/\*$\n^ \*  Copyright \(c\) 20\d\d((,| -) 20\d{2})? [A-Za-z].+\S$\n^ \*$\n^ \*  This program and the accompanying materials are made available under the$\n^ \*  terms of the Apache License, Version 2\.0 which is available at$\n^ \*  https://www\.apache\.org/licenses/LICENSE-2\.0$\n^ \*$\n^ \*  SPDX-License-Identifier: Apache-2\.0$\n^ \*$\n^ \*  Contributors:$\n^ \*       \S.*\S$\n^ \*$\n^ \*/$\n^$\n^package"/>-->
         <property name="multiLines" value="11"/>
     </module>
 
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 4f4ee6c8e9e058c7064e4f619c896e9f84bdee1e..2c75a4bccc12daf357cfbed645b58f5a5b9735d6 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -12,14 +12,10 @@
  *
  */
 
-rootProject.name = "samples"
+rootProject.name = "edc-metadata-extractor-extension"
 
-// this is needed to have access to snapshot builds of plugins
 pluginManagement {
     repositories {
-        maven {
-            url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
-        }
         mavenCentral()
         gradlePluginPortal()
     }
@@ -27,54 +23,18 @@ pluginManagement {
 
 dependencyResolutionManagement {
     repositories {
-        maven {
-            url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
-        }
         mavenCentral()
         mavenLocal()
     }
-    versionCatalogs {
-        create("libs") {
-            from("org.eclipse.edc:edc-versions:0.0.1-SNAPSHOT")
-            // this is not part of the published EDC Version Catalog, so we'll just "amend" it
-            library(
-                "dnsOverHttps",
-                "com.squareup.okhttp3",
-                "okhttp-dnsoverhttps"
-            ).versionRef("okhttp")
-        }
-    }
 }
 
-// basic
-include(":basic:basic-01-basic-connector")
-include(":basic:basic-02-health-endpoint")
-include(":basic:basic-03-configuration")
-
+// extension
+include(":metadata-extractor")
+//
 // transfer
-include(":transfer:transfer-01-file-transfer:file-transfer-consumer")
-include(":transfer:transfer-01-file-transfer:file-transfer-provider")
-include(":transfer:transfer-01-file-transfer:file-transfer-integration-tests")
-include(":transfer:transfer-01-file-transfer:transfer-file-local")
-include(":transfer:transfer-01-file-transfer:fair-evaluator")
-include(":transfer:transfer-01-file-transfer:status-checker")
-
-include(":transfer:transfer-02-file-transfer-listener:file-transfer-listener-consumer")
-include(":transfer:transfer-02-file-transfer-listener:file-transfer-listener-integration-tests")
-include(":transfer:transfer-02-file-transfer-listener:listener")
-
-include(":transfer:transfer-03-modify-transferprocess:api")
-include(":transfer:transfer-03-modify-transferprocess:modify-transferprocess-consumer")
-include(":transfer:transfer-03-modify-transferprocess:modify-transferprocess-integration-tests")
-include(":transfer:transfer-03-modify-transferprocess:simulator")
-include(":transfer:transfer-03-modify-transferprocess:watchdog")
-
-include(":transfer:transfer-04-open-telemetry:open-telemetry-consumer")
-include(":transfer:transfer-04-open-telemetry:open-telemetry-provider")
+include(":sample:transfer:transfer-01-file-transfer:file-transfer-consumer")
+include(":sample:transfer:transfer-01-file-transfer:file-transfer-provider")
+include(":sample:transfer:transfer-01-file-transfer:transfer-file-local")
+include(":sample:transfer:transfer-01-file-transfer:status-checker")
 
-include(":transfer:transfer-05-file-transfer-cloud:cloud-transfer-consumer")
-include(":transfer:transfer-05-file-transfer-cloud:cloud-transfer-provider")
-include(":transfer:transfer-05-file-transfer-cloud:transfer-file-cloud")
 
-// modules for code samples ------------------------------------------------------------------------
-include(":other:custom-runtime")