diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotator.java
index 8cf0fd072ee134331854eedfa95775c5655cef93..731bd37306faffc35df2d033f17f8855e634f7f4 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotator.java
@@ -7,6 +7,7 @@ import java.util.Map.Entry;
 
 import org.apache.log4j.Logger;
 
+import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
@@ -133,6 +134,7 @@ public class ReconAnnotator extends ElementAnnotator implements IExternalService
         logger.warn("Unknown class type: " + annotatedObject.getClass());
         return;
       }
+      logger.debug(url);
       try {
         String content = getWebPageContent(url);
 
@@ -142,7 +144,7 @@ public class ReconAnnotator extends ElementAnnotator implements IExternalService
           JsonElement jelement = new JsonParser().parse(content);
           JsonObject jobject = jelement.getAsJsonObject();
           if (jobject.get("results").getAsJsonArray().size() > 0) {
-            jobject = jobject.get("results").getAsJsonArray().get(0).getAsJsonObject();
+            jobject = getBestMatchForAbbreviation(id, jobject.get("results").getAsJsonArray());
 
             for (Entry<String, JsonElement> entry : jobject.entrySet()) {
               String key = entry.getKey();
@@ -297,6 +299,15 @@ public class ReconAnnotator extends ElementAnnotator implements IExternalService
               } else if (key.equals("epa_id")) {
                 // for now we don't handle it
                 continue;
+              } else if (key.equals("createdDate")) {
+                // for now we don't handle it
+                continue;
+              } else if (key.equals("updatedDate")) {
+                // for now we don't handle it
+                continue;
+              } else if (key.equals("biocyc")) {
+                // for now we don't handle it
+                continue;
               } else {
                 unknown = true;
               }
@@ -316,6 +327,25 @@ public class ReconAnnotator extends ElementAnnotator implements IExternalService
     }
   }
 
+  private JsonObject getBestMatchForAbbreviation(String id, JsonArray asJsonArray) {
+    String match = null;
+    JsonObject result = null;
+    for (JsonElement element : asJsonArray) {
+      String objAbreviation = ((JsonObject) element).get("abbreviation").getAsString();
+      if (match == null) {
+        match = objAbreviation;
+        result = (JsonObject) element;
+      } else if (match.length() > objAbreviation.length()) {
+        match = objAbreviation;
+        result = (JsonObject) element;
+      } else if (id.equalsIgnoreCase(objAbreviation)) {
+        match = objAbreviation;
+        result = (JsonObject) element;
+      }
+    }
+    return result;
+  }
+
   @Override
   public String getCommonName() {
     return "Recon annotator";