diff --git a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
index 44ba848aa094bd6ea996cbc24e314ee44dfcbb00..c947104992856bb393f310779a596aae011ba27f 100644
--- a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
+++ b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
@@ -8,7 +8,6 @@ import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.annotation.data.Target;
-import lcsb.mapviewer.annotation.data.TargetType;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.map.BioEntity;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -19,8 +18,6 @@ import lcsb.mapviewer.model.map.species.Gene;
 import lcsb.mapviewer.model.map.species.Protein;
 import lcsb.mapviewer.model.map.species.Rna;
 import lcsb.mapviewer.model.map.species.Species;
-import lcsb.mapviewer.services.search.db.GeneRow;
-import lcsb.mapviewer.services.search.db.TargetView;
 import lcsb.mapviewer.services.view.AnnotationViewFactory;
 
 public class ElementMatcher {
@@ -37,92 +34,6 @@ public class ElementMatcher {
 	@Autowired
 	private AnnotationViewFactory	annotationViewFactory;
 
-	/**
-	 * Check if the target should be applied to the element.
-	 * 
-	 * @param target
-	 *          drug target to check
-	 * @param element
-	 *          {@link Element} to check
-	 * @return <code>true</code> if drug target can target element,
-	 *         <code>false</code> otherwise
-	 */
-	public boolean elementMatch(TargetView target, BioEntity element) {
-		if (target.getType().equals(TargetType.COMPLEX_PROTEIN.getCommonName())) {
-			MiriamData targetAnnotation = annotationViewFactory.viewToObject(target.getAnnotation());
-			if (MiriamType.CHEMBL_TARGET.equals(targetAnnotation.getDataType())) {
-				if (element.getMiriamData().contains(targetAnnotation)) {
-					return true;
-				}
-			}
-			Collection<String> ids = new HashSet<String>();
-			for (GeneRow row : target.getProteins()) {
-				ids.add(row.getAnnotation().getName());
-			}
-
-			if (element instanceof Complex) {
-				Complex complex = (Complex) element;
-				Set<Species> speciesSet = complex.getAllSimpleChildren();
-				if (speciesSet.size() != ids.size()) {
-					return false;
-				}
-
-				for (Element id : speciesSet) {
-					if (!ids.contains(id.getName())) {
-						return false;
-					}
-				}
-				return true;
-			}
-			return false;
-		} else if (target.getType().equals(TargetType.SINGLE_PROTEIN.getCommonName())) {
-			MiriamData targetAnnotation = null;
-			if (target.getAnnotation() != null) {
-				targetAnnotation = annotationViewFactory.viewToObject(target.getAnnotation());
-			} else if (target.getProteins().size() > 0) {
-				targetAnnotation = annotationViewFactory.viewToObject(target.getProteins().get(0).getAnnotation());
-			} else {
-				logger.warn("Invalid target found: " + target);
-			}
-			if (targetAnnotation != null && element.getMiriamData().contains(targetAnnotation)) {
-				return true;
-			}
-			if (element instanceof Protein || element instanceof Rna || element instanceof Gene) {
-				if (target.getProteins().size() > 0) {
-					String hgncId = target.getProteins().get(0).getAnnotation().getName();
-					if (element.getName().equalsIgnoreCase(hgncId)) {
-						return true;
-					}
-				}
-			}
-			return false;
-		} else if (target.getType().equals(TargetType.PROTEIN_FAMILY.getCommonName())) {
-			if (element instanceof Protein || element instanceof Rna || element instanceof Gene) {
-				String hgncId = target.getProteins().get(0).getAnnotation().getName();
-				if (element.getName().equalsIgnoreCase(hgncId)) {
-					return true;
-				} else if (element.getMiriamData().contains(new MiriamData(MiriamType.HGNC_SYMBOL, hgncId))) {
-					return true;
-				}
-				for (GeneRow protein : target.getProteins()) {
-					hgncId = protein.getAnnotation().getName();
-					if (element.getName().equalsIgnoreCase(hgncId)) {
-						return true;
-					} else if (element.getMiriamData().contains(new MiriamData(MiriamType.HGNC_SYMBOL, hgncId))) {
-						return true;
-					}
-				}
-			}
-			return false;
-		} else if (target.getType().equals(TargetType.OTHER.getCommonName())) {
-			// in other case just compare names
-			String name = target.getProteins().get(0).getAnnotation().getName();
-			return element.getName().equalsIgnoreCase(name);
-		} else {
-			throw new InvalidArgumentException("Unknown drug target type: " + target.getType());
-		}
-	}
-
 	public boolean elementMatch(Target target, BioEntity element) {
 		MiriamData targetAnnotation = target.getSource();
 		switch (target.getType()) {
diff --git a/service/src/main/java/lcsb/mapviewer/services/search/SearchResultFactory.java b/service/src/main/java/lcsb/mapviewer/services/search/SearchResultFactory.java
index de69745e87a1471d62bd3d19513ba9dd8c048ce1..6380639b2259edbc655afb34e53ed85a2ef5d86a 100644
--- a/service/src/main/java/lcsb/mapviewer/services/search/SearchResultFactory.java
+++ b/service/src/main/java/lcsb/mapviewer/services/search/SearchResultFactory.java
@@ -58,57 +58,7 @@ public abstract class SearchResultFactory<T, S extends ISearchResultView> extend
 	@Autowired
 	private ElementMatcher				elementMatcher;
 
-	/**
-	 * Returns detailed information about element respective to the set of targets
-	 * (which should be connected to single drug/mirna/chemical).
-	 * 
-	 * @param element
-	 *          element for which we are looking for detailed information
-	 * @param model
-	 *          {@link Model} on which element is located
-	 * @param targets
-	 *          list of targets from which detailed information should be
-	 *          extracted
-	 * @return detailed information for element in the specific drug,
-	 *         <code>null</code> if such information doesnt exist
-	 */
-	public TargetDetails getElementInformationForResult(Collection<TargetView> targets, ElementIdentifier element, Model model) {
-		if (ElementIdentifierType.REACTION.getJsName().equalsIgnoreCase(element.getType())) {
-			logger.warn("Detail information for reactions not available");
-			return null;
-		} else if (ElementIdentifierType.POINT.getJsName().equalsIgnoreCase(element.getType())) {
-			logger.warn("Detail information for points not available");
-			return null;
-		} else if (ElementIdentifierType.ALIAS.getJsName().equalsIgnoreCase(element.getType())) {
-			Model m = model.getSubmodelById(element.getModelId());
-			Element alias = m.getElementByDbId(Integer.valueOf(element.getObjectId()));
-			if (alias == null) {
-				logger.warn("Alias with object id = " + element.getObjectId() + " is unknown.");
-				return null;
-			}
-			for (TargetView row : targets) {
-				if (elementMatch(row, alias)) {
-					TargetDetails result = new TargetDetails();
-					result.setDatabaseSource(row.getAnnotation());
-					for (Article article : row.getReferences()) {
-						result.getReferences().add(annotationViewFactory.create(article));
-					}
-					for (GeneRow protein : row.getProteins()) {
-						result.getReferences().add(protein.getAnnotation());
-					}
-					return result;
-				}
-			}
-		} else {
-			throw new InvalidArgumentException("Unknown element type: " + element.getType());
-		}
-		return null;
-	}
 
-	protected boolean elementMatch(TargetView target, Element element) {
-		return elementMatcher.elementMatch(target, element);
-	}
-	
 	protected boolean elementMatch(Target target, Element element) {
 		return elementMatcher.elementMatch(target, element);
 	}
diff --git a/service/src/main/java/lcsb/mapviewer/services/search/db/DrugTargetViewVisibilityComparator.java b/service/src/main/java/lcsb/mapviewer/services/search/db/DrugTargetViewVisibilityComparator.java
deleted file mode 100644
index a92660b2582079489651c958657e4db93d9ae28c..0000000000000000000000000000000000000000
--- a/service/src/main/java/lcsb/mapviewer/services/search/db/DrugTargetViewVisibilityComparator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package lcsb.mapviewer.services.search.db;
-
-import java.util.Comparator;
-
-import lcsb.mapviewer.common.comparator.StringComparator;
-
-/**
- * Comparator class for {@link TargetView} objects. It put first elements that
- * are {@link TargetView#getSelectable() selectable} elements.
- * 
- * @author Piotr Gawron
- *
- */
-public class DrugTargetViewVisibilityComparator implements Comparator<TargetView> {
-
-	/**
-	 * Comparator class for Strings that handles nulls.
-	 */
-	private final StringComparator stringComparator = new StringComparator();
-
-	@Override
-	public int compare(TargetView arg0, TargetView arg1) {
-		if (arg0.getSelectable() && !arg1.getSelectable()) {
-			return -1;
-		}
-		if (!arg0.getSelectable() && arg1.getSelectable()) {
-			return 1;
-		}
-		return stringComparator.compare(arg0.getName(), arg1.getName());
-	}
-
-}
diff --git a/service/src/main/java/lcsb/mapviewer/services/search/db/TargetViewFactory.java b/service/src/main/java/lcsb/mapviewer/services/search/db/TargetViewFactory.java
deleted file mode 100644
index 994ca460ecfda84f5d97e85cf72090e226a41314..0000000000000000000000000000000000000000
--- a/service/src/main/java/lcsb/mapviewer/services/search/db/TargetViewFactory.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package lcsb.mapviewer.services.search.db;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import com.google.gson.Gson;
-
-import lcsb.mapviewer.annotation.data.Article;
-import lcsb.mapviewer.annotation.data.ArticleCitationComparator;
-import lcsb.mapviewer.annotation.data.Target;
-import lcsb.mapviewer.annotation.data.TargetType;
-import lcsb.mapviewer.annotation.services.PubmedParser;
-import lcsb.mapviewer.annotation.services.PubmedSearchException;
-import lcsb.mapviewer.common.exception.NotImplementedException;
-import lcsb.mapviewer.model.map.BioEntity;
-import lcsb.mapviewer.model.map.MiriamData;
-import lcsb.mapviewer.model.map.MiriamType;
-import lcsb.mapviewer.model.map.model.Model;
-import lcsb.mapviewer.model.map.model.ModelSubmodelConnection;
-import lcsb.mapviewer.services.view.AbstractViewFactory;
-import lcsb.mapviewer.services.view.AnnotationViewFactory;
-
-/**
- * Factory class for {@link TargetView} class.
- * 
- * @author Piotr Gawron
- * 
- */
-public class TargetViewFactory extends AbstractViewFactory<Target, TargetView> {
-
-	/**
-	 * Default class logger.
-	 */
-	private static Logger					logger = Logger.getLogger(TargetViewFactory.class);
-
-	/**
-	 * Factory object for {@link lcsb.mapviewer.services.view.AnnotationView}
-	 * elements.
-	 */
-	@Autowired
-	private AnnotationViewFactory	annotationViewFactory;
-
-	/**
-	 * Service accessing
-	 * <a href="http://europepmc.org/RestfulWebService">pubmed</a>.
-	 */
-	@Autowired
-	private PubmedParser					pubmedParser;
-
-	@Override
-	public TargetView create(Target target) {
-		return create(target, null);
-	}
-
-	/**
-	 * Creates {@link TargetView} element for given {@link Target} and places
-	 * links on the parameter {@link Model}.
-	 * 
-	 * @param target
-	 *          object for which {@link TargetView} is created
-	 * @param model
-	 *          {@link Model} where links will be placed
-	 * @return {@link TargetView} element for given {@link Target}
-	 */
-	public TargetView create(Target target, Model model) {
-		TargetView result = new TargetView();
-		if (target == null) {
-			return result;
-		}
-		result.setName(target.getName());
-		if (target.getType() == null) {
-			logger.warn("Unknown type of target: " + target.getName() + ", target name: " + target.getName());
-		} else {
-			result.setType(target.getType().getCommonName());
-		}
-
-		if (target.getType() == TargetType.SINGLE_PROTEIN || target.getType() == TargetType.COMPLEX_PROTEIN || target.getType() == TargetType.PROTEIN_FAMILY) {
-			result.setVisible(true);
-			result.setSelectable(false);
-		}
-
-		for (MiriamData md : target.getGenes()) {
-			GeneRow geneRow = new GeneRow();
-			geneRow.setAnnotation(annotationViewFactory.create(md));
-			if (model != null) {
-				Set<BioEntity> list = new HashSet<>();
-				list.addAll(model.getElementsByName(md.getResource()));
-				list.addAll(model.getElementsByAnnotation(md));
-
-				int countInTopModel = list.size();
-				for (ModelSubmodelConnection submodel : model.getSubmodelConnections()) {
-					list.addAll(submodel.getSubmodel().getModel().getElementsByName(md.getResource()));
-					list.addAll(submodel.getSubmodel().getModel().getElementsByAnnotation(md));
-				}
-				int counter = list.size();
-				geneRow.setSelectable(counter > 0);
-
-				if (counter > 0) {
-					geneRow.setSelectable(true);
-					if (target.getType() == TargetType.SINGLE_PROTEIN || target.getType() == TargetType.PROTEIN_FAMILY) {
-						result.setSelectable(true);
-					}
-					if (countInTopModel < counter) {
-						result.setAvailableInSubmodel(true);
-					}
-				}
-			}
-			result.addProtein(geneRow);
-		}
-
-		// this should be fixed
-		// if (target.getType() == TargetType.COMPLEX_PROTEIN) {
-		//
-		// if (complexToOverlayList(target, null).size() > 0) {
-		// row.setSelectable(true);
-		// }
-		// }
-
-		if (target.getSource() != null) {
-			result.setAnnotation(annotationViewFactory.create(target.getSource()));
-		}
-		for (MiriamData md : target.getReferences()) {
-			if (md.getDataType().equals(MiriamType.PUBMED)) {
-				try {
-					Integer id = Integer.parseInt(md.getResource());
-					Article reference = pubmedParser.getPubmedArticleById(id);
-					if (reference != null) {
-						result.addReference(reference);
-					}
-				} catch (NumberFormatException e) {
-					logger.warn("Invalid pubmed reference: " + md);
-				} catch (PubmedSearchException e) {
-					logger.warn("Problem with accessing info about pubmed: " + md, e);
-				}
-			} else {
-				logger.warn("Unknown reference type: " + md);
-			}
-		}
-		Collections.sort(result.getReferences(), new ArticleCitationComparator());
-
-		return result;
-
-	}
-
-	@Override
-	public String createGson(TargetView object) {
-		return new Gson().toJson(object);
-	}
-
-	@Override
-	public Target viewToObject(TargetView view) {
-		throw new NotImplementedException();
-	}
-}
diff --git a/service/src/main/resources/applicationContext-service.xml b/service/src/main/resources/applicationContext-service.xml
index c40be7af7591eb74805a56c5775174aa273d0535..7d133276baca0b90b4f182c4120f431a268bb381 100644
--- a/service/src/main/resources/applicationContext-service.xml
+++ b/service/src/main/resources/applicationContext-service.xml
@@ -68,8 +68,6 @@
 	<bean id="FullReactionViewFactory" class="lcsb.mapviewer.services.search.data.FullReactionViewFactory"/>
 	<bean id="LightAliasViewFactory" class="lcsb.mapviewer.services.search.data.LightAliasViewFactory"/>
 
-	<bean id="TargetViewFactory" class="lcsb.mapviewer.services.search.db.TargetViewFactory"/>
-	
 	<bean id="ElementMatcher" class="lcsb.mapviewer.services.search.ElementMatcher"/>
 	
 	
diff --git a/service/src/test/java/lcsb/mapviewer/services/search/db/AllSearchDbTests.java b/service/src/test/java/lcsb/mapviewer/services/search/db/AllSearchDbTests.java
index dbcdf6e6c209ae879d32867da131c2ff7e004757..7a0f88d8154271df156c9f42b462aad2415117b7 100644
--- a/service/src/test/java/lcsb/mapviewer/services/search/db/AllSearchDbTests.java
+++ b/service/src/test/java/lcsb/mapviewer/services/search/db/AllSearchDbTests.java
@@ -12,7 +12,6 @@ import lcsb.mapviewer.services.search.db.mirna.MiRNAServiceTest;
 @SuiteClasses({ AllSearchDrugTests.class, //
 		ChemicalServiceTest.class, //
 		MiRNAServiceTest.class, //
-		TargetViewFactoryTest.class, //
 		TargetViewTest.class,//
 })
 public class AllSearchDbTests {
diff --git a/service/src/test/java/lcsb/mapviewer/services/search/db/TargetViewFactoryTest.java b/service/src/test/java/lcsb/mapviewer/services/search/db/TargetViewFactoryTest.java
deleted file mode 100644
index 6146b57cf683c9c0990364d32bc34e880b3b1efd..0000000000000000000000000000000000000000
--- a/service/src/test/java/lcsb/mapviewer/services/search/db/TargetViewFactoryTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package lcsb.mapviewer.services.search.db;
-
-import static org.junit.Assert.*;
-import lcsb.mapviewer.services.ServiceTestFunctions;
-import lcsb.mapviewer.services.search.db.TargetView;
-import lcsb.mapviewer.services.search.db.TargetViewFactory;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TargetViewFactoryTest extends ServiceTestFunctions{
-
-	@Autowired
-	TargetViewFactory	targetViewFactory;
-
-	@Before
-	public void setUp() throws Exception {
-	}
-
-	@After
-	public void tearDown() throws Exception {
-	}
-
-	@Test
-	public void testCreateEmpty() throws Exception {
-		try {
-			Object object = targetViewFactory.create(null);
-			assertNotNull(object);
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
-
-	@Test
-	public void testCreateGson() throws Exception {
-		try {
-			TargetView object = targetViewFactory.create(null);
-			assertNotNull(targetViewFactory.createGson(object));
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
-
-}