diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/PeerDao.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/PeerDao.java
index b8d51266cbe19f8d06ed24c5359ee5533e2bc9ba..4ad4a9e528797e5af3683f829c62c363a1b6ce65 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/PeerDao.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/PeerDao.java
@@ -71,5 +71,5 @@ public interface PeerDao extends EntityDao<String, Peer> {
 
     void updatePeersAsDown(String currencyId, long minUpTimeInMs, Collection<String> endpointApis);
 
-    boolean hasPeersUpWithApi(String currencyId, Set<EndpointApi> endpointApis);
+    boolean hasPeersUpWithApi(String currencyId, Set<String> endpointApis);
 }
diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/mem/MemoryPeerDaoImpl.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/mem/MemoryPeerDaoImpl.java
index 2692269d15f281d6d8330368311490d547eee69c..c73424c674b48a33e25db09478a93f4318d1ef1a 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/mem/MemoryPeerDaoImpl.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/mem/MemoryPeerDaoImpl.java
@@ -22,14 +22,12 @@ package org.duniter.core.client.dao.mem;
  * #L%
  */
 
+import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import org.duniter.core.client.dao.PeerDao;
-import org.duniter.core.client.model.bma.EndpointApi;
-import org.duniter.core.client.model.bma.NetworkPeers;
 import org.duniter.core.client.model.bma.NetworkWs2pHeads;
 import org.duniter.core.client.model.local.Peer;
 import org.duniter.core.client.model.local.Peers;
-import org.duniter.core.util.Preconditions;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -180,11 +178,11 @@ public class MemoryPeerDaoImpl implements PeerDao {
     }
 
     @Override
-    public boolean hasPeersUpWithApi(String currencyId, Set<EndpointApi> api) {
+    public boolean hasPeersUpWithApi(String currencyId, Set<String> api) {
         return getPeersByCurrencyId(currencyId)
                 .stream()
                 .anyMatch(p ->
-                    api.contains(EndpointApi.valueOf(p.getApi())) &&
+                    api.contains(p.getApi()) &&
                             p.getStats() != null &&
                             Peer.PeerStatus.UP.equals(p.getStats().getStatus())
                 );
diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/Endpoints.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/Endpoints.java
index 5f66154fad53532ad69321e88a93b2004146af0f..afbb9e63fdaeb836db99f055e89e5a36d5e3cc27 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/Endpoints.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/bma/Endpoints.java
@@ -22,8 +22,8 @@ package org.duniter.core.client.model.bma;
  * #L%
  */
 
-import org.duniter.core.util.StringUtils;
-import org.duniter.core.util.http.InetAddressUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.conn.util.InetAddressUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java
index 100812e6046e12bc31499568f3d78e71d7d51469..7657ff8da8e53fd42f22cd519ac530e6e33b0f9b 100644
--- a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java
+++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java
@@ -25,10 +25,10 @@ package org.duniter.core.client.model.local;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.google.common.base.Joiner;
+import com.google.common.base.Preconditions;
+import org.apache.commons.lang3.StringUtils;
 import org.duniter.core.client.model.bma.EndpointApi;
 import org.duniter.core.client.model.bma.NetworkPeering;
-import org.duniter.core.util.Preconditions;
-import org.duniter.core.util.StringUtils;
 import org.duniter.core.util.http.InetAddressUtils;
 
 import java.io.Serializable;
diff --git a/duniter4j-core-shared/src/main/java/org/duniter/core/util/ArrayUtils.java b/duniter4j-core-shared/src/main/java/org/duniter/core/util/ArrayUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..5134a648ef09f3310d741844fcff6b5dffbc3242
--- /dev/null
+++ b/duniter4j-core-shared/src/main/java/org/duniter/core/util/ArrayUtils.java
@@ -0,0 +1,64 @@
+package org.duniter.core.util;
+
+/*
+ * #%L
+ * UCoin Java :: Core Shared
+ * %%
+ * Copyright (C) 2014 - 2016 EIS
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the 
+ * License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public 
+ * License along with this program.  If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+/**
+ * Created by eis on 23/12/14.
+ */
+public class ArrayUtils {
+
+    public static boolean isNotEmpty(Object[] coll) {
+        return coll != null && coll.length > 0;
+    }
+    public static boolean isEmpty(Object[] coll) {
+        return coll == null || coll.length == 0;
+    }
+
+    public static String join(final Object[] array) {
+        return join(array, ", ");
+    }
+
+    public static String join(final Object[] array, final  String separator) {
+        if (array == null || array.length == 0) {
+            return null;
+        }
+        StringBuilder sb = new StringBuilder(array.length * 7);
+        sb.append(array[0]);
+        for (int i = 1; i < array.length; i++) {
+            sb.append(separator);
+            sb.append(array[i]);
+        }
+        return sb.toString();
+    }
+
+    public static int size(final Object[] array) {
+        return array == null ? 0 : array.length;
+    }
+
+}
diff --git a/duniter4j-core-shared/src/main/java/org/duniter/core/util/CollectionUtils.java b/duniter4j-core-shared/src/main/java/org/duniter/core/util/CollectionUtils.java
index b227d3100790af2e6b2fb16ce4ff3682ee189c31..d2b14ec230a6f75e00354255689957dbb22a9bae 100644
--- a/duniter4j-core-shared/src/main/java/org/duniter/core/util/CollectionUtils.java
+++ b/duniter4j-core-shared/src/main/java/org/duniter/core/util/CollectionUtils.java
@@ -42,27 +42,18 @@ public class CollectionUtils {
     }
 
     public static boolean isNotEmpty(Object[] coll) {
-        return coll != null && coll.length > 0;
+        return ArrayUtils.isNotEmpty(coll);
     }
     public static boolean isEmpty(Object[] coll) {
-        return coll == null || coll.length == 0;
+        return ArrayUtils.isEmpty(coll);
     }
 
     public static String join(final Object[] array) {
-        return join(array, ", ");
+        return ArrayUtils.join(array);
     }
 
     public static String join(final Object[] array, final  String separator) {
-        if (array == null || array.length == 0) {
-            return null;
-        }
-        StringBuilder sb = new StringBuilder(array.length * 7);
-        sb.append(array[0]);
-        for (int i = 1; i < array.length; i++) {
-            sb.append(separator);
-            sb.append(array[i]);
-        }
-        return sb.toString();
+        return ArrayUtils.join(array, separator);
     }
 
     public static String join(final Collection<?> collection) {
@@ -88,7 +79,7 @@ public class CollectionUtils {
     }
 
     public static int size(final Object[] array) {
-        return array == null ? 0 : array.length;
+        return ArrayUtils.size(array);
     }
 
     public static <E> E extractSingleton(Collection<E> collection) {