diff --git a/src/main/java/at/ac/uibk/gitsearch/repository/search/MetaDataRepository.java b/src/main/java/at/ac/uibk/gitsearch/repository/search/MetaDataRepository.java
index 34c1774bc6b6d5ae320217b5585d76920ca0f286..ea5d8c1e8e39d3051ab56789b8003c7c3e51bda0 100644
--- a/src/main/java/at/ac/uibk/gitsearch/repository/search/MetaDataRepository.java
+++ b/src/main/java/at/ac/uibk/gitsearch/repository/search/MetaDataRepository.java
@@ -41,7 +41,7 @@ import at.ac.uibk.gitsearch.service.dto.SearchResultsDTO.SearchResultDTO;
 
 @Repository
 public class MetaDataRepository {
-	
+
 	/**
 	 * just a local wrapper, to decrypt JSON
 	 *
@@ -186,7 +186,7 @@ public class MetaDataRepository {
 			while (tryNextPage) {
 
 				SearchSourceBuilder sourceBuilder = new SearchSourceBuilder().size(pageSize).from(currentPage++*pageSize);
-				
+
 				searchRequest.source(sourceBuilder);
 
 				SearchResponse searchResponse = elasticsearchClient.search(searchRequest, RequestOptions.DEFAULT);
@@ -196,7 +196,7 @@ public class MetaDataRepository {
 				objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
 
 				tryNextPage = searchResponse.getHits().getHits().length > 0;
-				
+
 				for (SearchHit searchHit : searchResponse.getHits().getHits()) {
 					final String sourceAsJSON = searchHit.getSourceAsString();
 					SearchResultDTOWrapper entry = objectMapper.readValue(sourceAsJSON, SearchResultDTOWrapper.class);
@@ -276,7 +276,7 @@ public class MetaDataRepository {
 							SearchRepositoryConstants.METADATA_PUBLISHER)
 					.type(MultiMatchQueryBuilder.Type.PHRASE_PREFIX));
 
-//		forEachTerm(searchInputDTO.getMetadata().getAuthor(),		
+//		forEachTerm(searchInputDTO.getMetadata().getAuthor(),
 //		   term ->
 // 			queryBuilder.must(QueryBuilders.prefixQuery(SearchRepositoryConstants.METADATA_CREATOR, term)));
 
@@ -302,25 +302,33 @@ public class MetaDataRepository {
 
 		SearchResponse searchResponse = elasticsearchClient.search(searchRequest, RequestOptions.DEFAULT);
 
-		ObjectMapper objectMapper = new ObjectMapper();
-		objectMapper.registerModule(new JavaTimeModule());
-		objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-
-		final SearchResultsDTO results = new SearchResultsDTO();
-		List<SearchResultDTO> searchResults = new ArrayList<>();
-		for (SearchHit searchHit : searchResponse.getHits().getHits()) {
-			SearchResultDTOWrapper entry = objectMapper.readValue(searchHit.getSourceAsString(),
-					SearchResultDTOWrapper.class);
-			final SearchResultDTO metadata = entry.getMetadata();
-			metadata.setProject(entry.getProject());
-			searchResults.add(metadata);
-		}
-		long hitCount = searchResponse.getHits().getTotalHits();
-		results.setHitCount(hitCount);
-		results.setSearchResult(searchResults);
-		return results;
+		return parseSearchResponse(searchResponse);
 	}
 
+	private static SearchResultsDTO parseSearchResponse(final SearchResponse searchResponse) throws JsonProcessingException {
+        ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.registerModule(new JavaTimeModule());
+        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+        final SearchResultsDTO results = new SearchResultsDTO();
+        final List<SearchResultDTO> searchResults = new ArrayList<>();
+        for (SearchHit searchHit : searchResponse.getHits().getHits()) {
+            searchResults.add(parseSearchHit(searchHit, objectMapper));
+        }
+        long hitCount = searchResponse.getHits().getTotalHits();
+        results.setHitCount(hitCount);
+        results.setSearchResult(searchResults);
+        return results;
+    }
+
+    private static SearchResultDTO parseSearchHit(SearchHit searchHit, ObjectMapper objectMapper) throws JsonProcessingException {
+        SearchResultDTOWrapper entry = objectMapper.readValue(searchHit.getSourceAsString(),
+            SearchResultDTOWrapper.class);
+        final SearchResultDTO metadata = entry.getMetadata();
+        metadata.setProject(entry.getProject());
+        return metadata;
+    }
+
 	/** Helper **/
 	private void forEachTerm(String searchTerm, Consumer<String> exec) {
 		if (searchTerm == null)