diff --git a/GreenScreen/CMakeLists.txt b/GreenScreen/CMakeLists.txt
index 1f61314b0776b3a69a10f15648dea08ac1d5725a..574d9b19ba91215bdd679c7a5094d5fd92633b12 100644
--- a/GreenScreen/CMakeLists.txt
+++ b/GreenScreen/CMakeLists.txt
@@ -17,9 +17,12 @@ set (JPL_DIRECTORY ${PROJECT_BINARY_DIR}/jpl)
 
 if(WIN32)
 	message(OS:\  WINDOWS\ ${CMAKE_SYSTEM_PROCESSOR})
-	set (CONTRIB_PLATFORM_CURT ${CMAKE_SYSTEM_PROCESSOR})
+	if (NOT ${CMAKE_CL_64})
+		message( FATAL_ERROR "\nUse CMake only for x64 Windows" )
+	endif()
+	set (CONTRIB_PLATFORM_CURT x64)
 	set (CONTRIB_PLATFORM ${CONTRIB_PLATFORM_CURT}-windows)
-	set (LIBRARY_FILE_NAME lib${PLUGIN_NAME}.dll)
+	set (LIBRARY_FILE_NAME ${PLUGIN_NAME}.dll)
 	set (LIBS_DIR $ENV{HOME}/Documents/GITHUB/Libs)
 	set (OPENCV $ENV{HOME}/Documents/GITHUB/opencv/build-bash/)
 	set (FFMPEG ${CONTRIB_PATH}/build/ffmpeg/Build/win32/x64)
@@ -77,8 +80,7 @@ set(plugin_SRC main.cpp
 			   videoSubscriber.cpp
 			   )
 
-set(plugin_HDR ${ProjectName}Config.h
-			   pluginInference.h
+set(plugin_HDR pluginInference.h
 			   pluginMediaHandler.h
 			   pluginParameters.h
 			   pluginProcessor.h
@@ -111,8 +113,8 @@ target_include_directories(${ProjectName} PUBLIC ${PROJECT_BINARY_DIR}
 												 ${LIBS_DIR}/${TENSORFLOW}/include/third_party/eigen3
 												 ${LIBS_DIR}/${TENSORFLOW}/include/flatbuffers
 												 )
-
-link_directories(${ProjectName} PUBLIC	${CONTRIB_PATH}
+if (WIN32)
+target_link_directories(${ProjectName} PUBLIC	${CONTRIB_PATH}
 										${LIBS_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
 										${OPENCV}/install/x64/vc16/staticlib
 										${FFMPEG}/bin
@@ -121,11 +123,20 @@ link_directories(${ProjectName} PUBLIC	${CONTRIB_PATH}
 										${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib/opencv4/3rdparty
 										${LIBS_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
 										)
-if (WIN32)
+
 target_link_libraries(${ProjectName} PUBLIC swscale avutil libpng opencv_imgcodecs411 opencv_imgproc411 opencv_core411 ${TFLIB} zlib)
 endif()
 
 if (UNIX)
+link_directories(${ProjectName} PUBLIC	${CONTRIB_PATH}
+										${LIBS_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
+										${OPENCV}/install/x64/vc16/staticlib
+										${FFMPEG}/bin
+										${LIBS_DIR}
+										${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib
+										${CONTRIB_PATH}/${CONTRIB_PLATFORM}/lib/opencv4/3rdparty
+										${LIBS_DIR}/${TENSORFLOW}/lib/${CONTRIB_PLATFORM}
+										)
 target_link_libraries(${ProjectName} PUBLIC swscale avutil libpng opencv_imgcodecs opencv_imgproc opencv_core ${TFLIB})
 endif()
 
@@ -145,13 +156,22 @@ add_custom_command(
 	COMMENT "Assembling Plugin files"
 )
 
-add_custom_command(
-	TARGET ${ProjectName}
-	POST_BUILD
-	COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/
-	if (WIN32)
-		COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${ProjectName}.lib ${JPL_DIRECTORY}/lib/
-	endif()
-	COMMAND python ${PROJECT_SOURCE_DIR}/../assemblePlugin.py --plugins=GreenScreen
-	COMMENT "Generating JPL archive"
-)
+if (WIN32)
+	add_custom_command(
+		TARGET ${ProjectName}
+		POST_BUILD
+		COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${ProjectName}.lib ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
+		COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
+		COMMAND python ${PROJECT_SOURCE_DIR}/../assemblePlugin.py --plugins=GreenScreen
+		COMMENT "Generating JPL archive"
+	)
+else()
+	add_custom_command(
+		TARGET ${ProjectName}
+		POST_BUILD
+		COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/Release/${LIBRARY_FILE_NAME} ${JPL_DIRECTORY}/lib/${CONTRIB_PLATFORM}
+		COMMAND python ${PROJECT_SOURCE_DIR}/../assemblePlugin.py --plugins=GreenScreen
+		COMMENT "Generating JPL archive"
+	)
+
+endif()
\ No newline at end of file
diff --git a/GreenScreen/pluginMediaHandler.cpp b/GreenScreen/pluginMediaHandler.cpp
index 41e334a53cad20b4dadaee89f5881e59a4aa497e..8c5d863fbbaa6f2d296e974545ba099759497b7c 100644
--- a/GreenScreen/pluginMediaHandler.cpp
+++ b/GreenScreen/pluginMediaHandler.cpp
@@ -88,10 +88,10 @@ PluginMediaHandler::setPreferenceAttribute(const std::string& key, const std::st
 bool
 PluginMediaHandler::preferenceMapHasKey(const std::string& key)
 {
-	if (ppm_.find(key) == ppm_.end()) {
-		return false;
+	if (key == "backgroundlist") {
+		return true;
 	}
-	return true;
+	return false;
 }
 
 void
diff --git a/GreenScreen/pluginMediaHandler.h b/GreenScreen/pluginMediaHandler.h
index 1a92a6e84d5fc2190d341a380491098c6f12cefe..3bf71deabc2bf03c38ea60b6dddf39a86e6a8382 100644
--- a/GreenScreen/pluginMediaHandler.h
+++ b/GreenScreen/pluginMediaHandler.h
@@ -41,13 +41,11 @@ public:
 
 	virtual void detach() override;
 	virtual void setPreferenceAttribute(const std::string& key, const std::string& value) override;
-	
+	virtual bool preferenceMapHasKey(const std::string& key) override;
+
 	std::shared_ptr<VideoSubscriber> mVS;
-	
-	std::string dataPath() const { return datapath_; }
 
-private:
-	bool preferenceMapHasKey(const std::string& key);
+	std::string dataPath() const { return datapath_; }
 
 private:
 	const std::string datapath_;
diff --git a/GreenScreen/pluginProcessor.cpp b/GreenScreen/pluginProcessor.cpp
index ea846e350b2dcf22a156100975abdab831fff968..991bf81b68e8ea658f69796d17b0f780c7765e49 100644
--- a/GreenScreen/pluginProcessor.cpp
+++ b/GreenScreen/pluginProcessor.cpp
@@ -43,7 +43,7 @@ namespace jami
 {
 
 PluginProcessor::PluginProcessor(const std::string& dataPath):
-pluginInference{TFModel{dataPath + sep + "models/" + mPluginParameters->model}}
+pluginInference{TFModel{dataPath + sep + "models" + sep + mPluginParameters->model}}
 {
 	initModel();
 	setBackgroundImage(dataPath, mPluginParameters->image);
@@ -52,7 +52,7 @@ pluginInference{TFModel{dataPath + sep + "models/" + mPluginParameters->model}}
 void
 PluginProcessor::setBackgroundImage(const std::string& dataPath, const std::string& value)
 {
-	backgroundPath = dataPath + sep + "backgrounds" + sep + value;
+	backgroundPath = dataPath + sep + "backgrounds" + sep + value; //
 	cv::Size size = cv::Size{0,0};
 
 	if (!backgroundImage.empty())
diff --git a/GreenScreen/preferences-tfcc.json b/GreenScreen/preferences-tfcc.json
index 7890955b9872347e0f16c33e42e769d114825ed5..f18e45af8944ea9bd0a11fa5363490ce5c92550b 100644
--- a/GreenScreen/preferences-tfcc.json
+++ b/GreenScreen/preferences-tfcc.json
@@ -8,10 +8,10 @@
         "defaultValue": "out",
         "entries": ["sent", "received"],
         "entryValues": ["out", "in"],
-        "editable": "true"
+        "scope": "plugin"
     },
     {
-        "category" : "ModelPreference",
+        "category" : "models",
         "type": "List",
         "key": "modellist",
         "title": "Model to load",
@@ -19,17 +19,17 @@
         "defaultValue": "mModel.pb",
         "entries": ["mModel"],
         "entryValues": ["mModel.pb"],
-        "editable": "false"
+        "scope": "plugin"
     },
     {
-        "category" : "ImageBackground",
-        "type": "List",
+        "category" : "backgrounds",
+        "type": "UserList",
         "key": "backgroundlist",
         "title": "Background image",
         "summary": "Select the image background to use",
         "defaultValue": "background2.png",
-        "entries": ["Painture", "Beach"],
-        "entryValues": ["background1.png", "background2.png"],
-        "editable": "true"
+        "entries": [ "Add new image", "Painture", "Beach" ],
+        "entryValues": ["", "background1.png", "background2.png"],
+        "scope": "plugin,Foreground Segmentation"
     }
 ]
diff --git a/GreenScreen/preferences-tflite.json b/GreenScreen/preferences-tflite.json
index 54beba791d5aea3e8be324c10ee334814a0a82a5..505a154a99877db8a56ef9be7ae8c6d5550ce182 100644
--- a/GreenScreen/preferences-tflite.json
+++ b/GreenScreen/preferences-tflite.json
@@ -8,10 +8,10 @@
         "defaultValue": "out",
         "entries": ["sent", "received"],
         "entryValues": ["out", "in"],
-        "editable": "true"
+        "scope": "plugin"
     },
     {
-        "category" : "ModelPreference",
+        "category" : "models",
         "type": "List",
         "key": "modellist",
         "title": "Model to load",
@@ -19,17 +19,17 @@
         "defaultValue": "mModel.tflite",
         "entries": ["mModel"],
         "entryValues": ["mModel.tflite"],
-        "editable": "false"
+        "scope": "plugin"
     },
     {
-        "category" : "ImageBackground",
-        "type": "List",
+        "category" : "backgrounds",
+        "type": "UserList",
         "key": "backgroundlist",
         "title": "Background image",
         "summary": "Select the image background to use",
         "defaultValue": "background2.png",
-        "entries": ["Painture", "Beach"],
-        "entryValues": ["background1.png", "background2.png"],
-        "editable": "true"
+        "entries": [ "Add new image", "Painture", "Beach" ],
+        "entryValues": ["", "background1.png", "background2.png"],
+        "scope": "plugin,Foreground Segmentation"
     }
 ]