diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java
index 3c680b67aeae3351d4c03390bb786ad157dc28ec..2ac0d8b89c35145bba24a4f73149494543eaaf46 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java
@@ -302,13 +302,8 @@ public class DrugbankHTMLParser extends DrugAnnotation implements IExternalServi
    * @return list of drug {@link Target} parsed from input string
    */
   List<Target> getTargetsForDrug(String page) throws DrugSearchException {
-    List<Target> result = new ArrayList<>();
     try {
-      int pageStart;
-      Target target = new Target();
-      target.setType(TargetType.SINGLE_PROTEIN);
-
-      pageStart = page.indexOf("bond-list-container targets");
+      int pageStart = page.indexOf("bond-list-container targets");
 
       int end = page.indexOf("bond-list-container enzymes");
       if (end < 0) {
@@ -325,28 +320,35 @@ public class DrugbankHTMLParser extends DrugAnnotation implements IExternalServi
         }
       }
 
-      while (pageStart > 0 && pageStart < end) {
-        int targetStart = page.indexOf("Details</a>", pageStart);
-        if (targetStart < 0) {
-          break;
-        }
-        int nextTargetStart = page.indexOf("Details</a>", targetStart + 1);
-        if (nextTargetStart < 0) {
-          nextTargetStart = end;
-        }
-
-        target = parseTarget(page.substring(targetStart, nextTargetStart));
-        if (target != null) {
-          result.add(target);
-        }
-        pageStart = nextTargetStart;
-
-      }
+      List<Target> result = extractTargetsFromPageContent(page, pageStart, end);
+      return result;
     } catch (TaxonomySearchException e) {
       throw new DrugSearchException("Problem with finidng information about organism", e);
     } catch (UniprotSearchException e) {
       throw new DrugSearchException("Problem with finidng information about protein", e);
     }
+  }
+
+  List<Target> extractTargetsFromPageContent(String page, int pageStart, int end)
+      throws UniprotSearchException, TaxonomySearchException {
+    List<Target> result = new ArrayList<>();
+    while (pageStart > 0 && pageStart < end) {
+      int targetStart = page.indexOf("Details</a>", pageStart);
+      if (targetStart < 0 || targetStart > end) {
+        break;
+      }
+      int nextTargetStart = page.indexOf("Details</a>", targetStart + 1);
+      if (nextTargetStart < 0) {
+        nextTargetStart = end;
+      }
+
+      Target target = parseTarget(page.substring(targetStart, nextTargetStart));
+      if (target != null) {
+        result.add(target);
+      }
+      pageStart = nextTargetStart;
+
+    }
     return result;
   }
 
@@ -706,7 +708,8 @@ public class DrugbankHTMLParser extends DrugAnnotation implements IExternalServi
         String uniprotId = page.substring(protienLinkPosition, j);
         MiriamData uniprotMiriam = new MiriamData(MiriamType.UNIPROT, uniprotId);
         MiriamData hgncMiriam = uniprotAnnotator.uniProtToHgnc(uniprotMiriam);
-        if (hgncMiriam != null) hgncMiriam.setAnnotator(null);
+        if (hgncMiriam != null)
+          hgncMiriam.setAnnotator(null);
         if (hgncMiriam == null || !hgncMiriam.equals(hgncTarget)) {
           logger.debug("Invalid target found. Expected " + hgncTarget + ", but found: " + hgncMiriam + " ("
               + uniprotMiriam + ")");
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParserTest.java
index 017020c440ccdc238e516b1474776197bb24d7c0..d17d83c79ae90e9e771607b0948a913171ccf75e 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParserTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParserTest.java
@@ -828,5 +828,22 @@ public class DrugbankHTMLParserTest extends AnnotationTestFunctions {
     }
 
   }
+  
+  @Test
+  public void testExtractTargetsFromPageContent() throws Exception {
+    try {
+      String pageContent = " Details</a>blablablablabla Details</a>";
+      List<Target> result = drugBankHTMLParser.extractTargetsFromPageContent(pageContent,2,3);
+
+      assertEquals(0, result.size());
+
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+
+  }
+  
+  
 
 }
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/drugs/DrugRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/drugs/DrugRestImplTest.java
index 515b299b95cb273d81bc33d98bb9f88d01452c4a..39ca0834077745edc702fad16b36e5299312ca04 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/drugs/DrugRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/drugs/DrugRestImplTest.java
@@ -53,8 +53,9 @@ public class DrugRestImplTest extends RestTestFunctions {
       throw e;
     }
   }
+  
   @Test
-  public void test() throws Exception {
+  public void testTargetWithEmptyMechanism() throws Exception {
     try {
       DrugRestImpl drugRestImpl = createMockProjectRest("testFiles/model/sample.xml");
       Map<String, Object> result = drugRestImpl.getDrugsByQuery(token, "sample", "", "Picato").get(0);
@@ -66,7 +67,6 @@ public class DrugRestImplTest extends RestTestFunctions {
     }
   }
 
-
   private DrugRestImpl createMockProjectRest(String string) throws Exception {
     Model model = super.getModelForFile(string, true);
     IModelService mockModelService = Mockito.mock(IModelService.class);