diff --git a/include/dap_chain_plugins_manifest.h b/include/dap_chain_plugins_manifest.h
index 39ae2c7516b125489680fdd5d566ef26d09b6c2b..107a6c213b2ecc8f8af68f0491fde61fdbf1c657 100644
--- a/include/dap_chain_plugins_manifest.h
+++ b/include/dap_chain_plugins_manifest.h
@@ -1,11 +1,11 @@
 #ifndef _DAP_CHAIN_PLUGINS_MANIFEST_
 #define _DAP_CHAIN_PLUGINS_MANIFEST_
 #include "dap_common.h"
-#include "dap_list.h"
 #include "dap_strfuncs.h"
 #include "stdio.h"
 #include "json-c/json_object.h"
 #include "json-c/json_tokener.h"
+#include "utlist.h"
 
 #ifdef __cplusplus
 extern "C"{
@@ -14,37 +14,32 @@ extern "C"{
 #undef LOG_TAG
 #define LOG_TAG "dap_chain_plugins_manifest"
 
-enum data_in_manifest{
-    NAME,
-    VERSION,
-    DEPENDENCYS,
-    AUTHOR,
-    DESCRIPTION
-};
+typedef struct dap_chain_plugins_list_char{
+    char *value;
+    struct dap_chain_plugins_list_char *next;
+}dap_chain_plugins_list_char_t;
 
-typedef struct manifest{
+typedef struct dap_list_manifest{
     char *name;
     char *version;
-    dap_list_t *dependencys;
     char *author;
     char *description;
-    bool init;
-}manifest_t;
+    dap_chain_plugins_list_char_t *dependencys;
+    struct dap_list_manifest *next;
+}dap_chain_plugins_list_manifest_t;
 
-manifest_t *dap_chain_plugins_manifest_new(const char *name, const char *version, const dap_list_t *dep, const char *author,
-                         const char *description);
-void dap_chain_plugins_manifest_free(manifest_t *manifest);
-manifest_t* dap_chain_plugins_add_manifest_from_file(const char *file_path);
+dap_chain_plugins_list_manifest_t* manifests;
 
-static dap_list_t *manifests;
+dap_chain_plugins_list_manifest_t *dap_chain_plugins_manifest_new(const char *name, const char *version, const dap_chain_plugins_list_char_t *dep, const char *author,
+                         const char *description);
 
 void dap_chain_plugins_manifest_list_create();
-manifest_t *dap_chain_plugins_manifest_get_list(size_t index);
-unsigned int dap_chain_plugins_manifests_get_lenght();
-void dap_chain_plugins_manifest_list_free();
-void dap_chain_plugins_manifest_list_add_manifest(manifest_t *manifest);
-bool dap_chain_plugins_manifest_list_add_from_file(const char *file_path);
 
+dap_chain_plugins_list_manifest_t* dap_chain_plugins_manifests_get_list();
+
+dap_chain_plugins_list_manifest_t* dap_chain_plugins_add_manifest_from_file(const char *file_path);
+
+bool dap_chain_plugins_manifest_list_add_from_file(const char *path_file);
 
 #ifdef __cplusplus
 }
diff --git a/src/dap_chain_plugins_manifest.c b/src/dap_chain_plugins_manifest.c
index 6b23616d8b276abb536bbddabb9cbe7594be1a4c..4a202f98279d01c0b5e6206d72ed755e221c6754 100644
--- a/src/dap_chain_plugins_manifest.c
+++ b/src/dap_chain_plugins_manifest.c
@@ -1,38 +1,40 @@
 #include "dap_chain_plugins_manifest.h"
 
-dap_list_t *JSON_array_to_dap_list(json_object *obj){
-    int len = json_object_array_length(obj);
-    dap_list_t *list = NULL;
-    json_object *j_data;
-    char *data;
-    for (int i = 0; i < len; i++){
-        j_data = json_object_array_get_idx(obj, i);
-        data = dap_strdup(json_object_get_string(j_data));
-        dap_list_append(list, data);
+dap_chain_plugins_list_manifest_t *dap_chain_plugins_manifest_new(const char *name, const char *version, const dap_chain_plugins_list_char_t *dep, const char *author,
+                                                    const char *description){
+    dap_chain_plugins_list_manifest_t *man = (dap_chain_plugins_list_manifest_t*)DAP_NEW(dap_chain_plugins_list_manifest_t);
+    man->name = dap_strdup(name);
+    man->author = dap_strdup(author);
+    man->version = dap_strdup(version);
+    man->description = dap_strdup(description);
+    man->dependencys = NULL;
+    //copy informantion from dep to man->dependencys
+    int len_dep;
+    dap_chain_plugins_list_char_t *char_t;
+    LL_COUNT((dap_chain_plugins_list_char_t*)dep, char_t, len_dep);
+    LL_FOREACH((dap_chain_plugins_list_char_t*)dep, char_t){
+        LL_APPEND(man->dependencys, char_t);
     }
-    return list;
+    man->dependencys = (dap_chain_plugins_list_char_t*)dep;
+    return man;
 }
 
-manifest_t *dap_chain_plugins_manifest_new(const char *name, const char *version, const dap_list_t *dep, const char *author,
-                         const char *description){
-    manifest_t *manifest = (manifest_t*)malloc(sizeof(manifest_t));//DAP_NEW(manifest_t);
-    manifest->name = dap_strdup(name);
-    manifest->version = dap_strdup(version);
-    manifest->dependencys = dap_list_copy((dap_list_t*)dep);
-    manifest->author = dap_strdup(author);
-    manifest->description = dap_strdup(description);
-    manifest->init = false;
-    return manifest;
+static dap_chain_plugins_list_char_t* JSON_array_to_dap_list_char(json_object *j_obj){
+    dap_chain_plugins_list_char_t *list = NULL;
+    dap_chain_plugins_list_char_t *element = NULL;
+    for (int i = 0; i < json_object_array_length(j_obj); i++){
+        element = (dap_chain_plugins_list_char_t*)DAP_NEW(dap_chain_plugins_list_char_t);
+        element->value = dap_strdup(json_object_get_string(json_object_array_get_idx(j_obj, i)));
+        LL_APPEND(list, element);
+    }
+    return list;
 }
-void dap_chain_plugins_manifest_free(manifest_t *manifest){
-    free(manifest->name);
-    free(manifest->version);
-    free(manifest->author);
-    free(manifest->description);
-    dap_list_free(manifest->dependencys);
-    free(manifest);
+
+void dap_chain_plugins_manifest_list_create(){
+    manifests = NULL;
 }
-manifest_t* dap_chain_plugins_add_manifest_from_file(const char *file_path){
+
+dap_chain_plugins_list_manifest_t* dap_chain_plugins_add_manifest_from_file(const char *file_path){
     //READ File in char
     log_it(L_INFO, "Parse json file");
     FILE *file = fopen(file_path, "rt");
@@ -58,38 +60,23 @@ manifest_t* dap_chain_plugins_add_manifest_from_file(const char *file_path){
     version = json_object_get_string(j_version);
     author = json_object_get_string(j_author);
     description = json_object_get_string(j_description);
-    dap_list_t *dep = JSON_array_to_dap_list(j_dependencys);
+    dap_chain_plugins_list_char_t *dep = JSON_array_to_dap_list_char(j_dependencys);
     DAP_FREE(json);
-    manifest_t *manifest = dap_chain_plugins_manifest_new(name, version, dep, author, description);
+    dap_chain_plugins_list_char_t *tmp = NULL;
+    dap_chain_plugins_list_manifest_t *manifest = dap_chain_plugins_manifest_new(name, version, dep, author, description);
     return manifest;
 }
 
-//--------------------------------------------------------
-void dap_chain_plugins_manifest_list_create(){
-    manifests = NULL;
-}
-manifest_t *dap_chain_plugins_manifest_get_list(size_t index){
-    return (manifest_t*)dap_list_nth_data(manifests, (unsigned int)index);
+void dap_chain_plugins_manifest_list_add_manifest(dap_chain_plugins_list_manifest_t *man){
+    LL_APPEND(manifests, man);
 }
 
-unsigned int dap_chain_plugins_manifests_get_lenght(){
-    return dap_list_length(manifests);
+dap_chain_plugins_list_manifest_t* dap_chain_plugins_manifests_get_list(){
+    return manifests;
 }
 
-void dap_chain_plugins_manifest_list_free(){
-    unsigned int len = dap_list_length(manifests);
-    for (unsigned int i = 0; i < len;i++){
-        manifest_t* manifest = dap_list_nth_data(manifests, i);
-        dap_chain_plugins_manifest_free(manifest);
-    }
-    dap_list_free(manifests);
-}
-
-void dap_chain_plugins_manifest_list_add_manifest(manifest_t *manifest){
-    manifests = dap_list_append(manifests, manifest);
-}
 bool dap_chain_plugins_manifest_list_add_from_file(const char *file_path){
-    manifest_t *manifest = dap_chain_plugins_add_manifest_from_file(file_path);
+    dap_chain_plugins_list_manifest_t *manifest = dap_chain_plugins_add_manifest_from_file(file_path);
     if (manifest == NULL)
         return false;
     dap_chain_plugins_manifest_list_add_manifest(manifest);