diff --git a/src/integrationTest/java/net/geant/nmaas/portal/api/market/ApplicationControllerIntTest.java b/src/integrationTest/java/net/geant/nmaas/portal/api/market/ApplicationControllerIntTest.java
index 15dd785a78fd69303b7ffe7e1ff3e6ed449c68db..762b9a8174d6b52b26cecfd3eea8d167fc9a9d23 100644
--- a/src/integrationTest/java/net/geant/nmaas/portal/api/market/ApplicationControllerIntTest.java
+++ b/src/integrationTest/java/net/geant/nmaas/portal/api/market/ApplicationControllerIntTest.java
@@ -20,6 +20,7 @@ import net.geant.nmaas.portal.api.domain.AppConfigurationSpecView;
 import net.geant.nmaas.portal.api.domain.AppDeploymentSpecView;
 import net.geant.nmaas.portal.api.domain.AppStorageVolumeView;
 import net.geant.nmaas.portal.api.domain.ApplicationBaseView;
+import net.geant.nmaas.portal.api.domain.ApplicationBaseViewS;
 import net.geant.nmaas.portal.api.domain.ApplicationDTO;
 import net.geant.nmaas.portal.api.domain.ApplicationStateChangeRequest;
 import net.geant.nmaas.portal.api.domain.ApplicationView;
@@ -122,12 +123,13 @@ class ApplicationControllerIntTest extends BaseControllerTestSetup {
 
     @Test
     void shouldGetActiveApplications() throws Exception {
+        log.error("Test = {} {}", this.applicationBaseRepository.findAll().size(), this.applicationBaseRepository.findAllSmall().size());
         MvcResult result = mvc.perform(get("/api/apps/base")
                         .header("Authorization", "Bearer " + getValidTokenForUser(UsersHelper.ADMIN))
                         .accept(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk())
                 .andReturn();
-        ApplicationBaseView[] resultView = objectMapper.readValue(result.getResponse().getContentAsByteArray(), ApplicationBaseView[].class);
+        ApplicationBaseViewS[] resultView = objectMapper.readValue(result.getResponse().getContentAsByteArray(), ApplicationBaseViewS[].class);
         assertEquals(1, resultView.length);
         assertEquals(APP_1_NAME, resultView[0].getName());
     }
@@ -313,6 +315,14 @@ class ApplicationControllerIntTest extends BaseControllerTestSetup {
                 .andReturn();
         ApplicationView applicationView = objectMapper.readValue(result.getResponse().getContentAsByteArray(), ApplicationView.class);
         assertEquals(ApplicationState.DISABLED, applicationView.getState());
+
+        //reverse state to active again
+        mvc.perform(patch("/api/apps/state/" + id)
+                        .header("Authorization", "Bearer " + getValidTokenForUser(UsersHelper.ADMIN))
+                        .content(objectMapper.writeValueAsString(new ApplicationStateChangeRequest(ApplicationState.ACTIVE, "reason", false)))
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .accept(MediaType.APPLICATION_JSON))
+                .andExpect(status().isOk());
     }
 
     @Test
diff --git a/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java b/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java
index 75dd1449095a3ade806646aff1ba8c823dfe0a5b..113a43c9a5e64f616b9488bb17ed6e59ca9216b6 100644
--- a/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java
+++ b/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java
@@ -91,7 +91,6 @@ public class ApplicationController extends AppBaseController {
 	@Transactional
 	public List<ApplicationBaseViewS> getAllActiveApplicationBase() {
 		return appBaseService.findAllActiveAppsSmall().stream()
-				.map(app -> modelMapper.map(app, ApplicationBaseViewS.class))
 				.map(this::setAppRating)
 				.collect(Collectors.toList());
 	}
diff --git a/src/main/java/net/geant/nmaas/portal/persistent/repositories/ApplicationBaseRepository.java b/src/main/java/net/geant/nmaas/portal/persistent/repositories/ApplicationBaseRepository.java
index f14232e7fc6caa5920598c147ed8a6f231a228fb..2598abe671ce4f4f49ced01dcc04bdb448378d49 100644
--- a/src/main/java/net/geant/nmaas/portal/persistent/repositories/ApplicationBaseRepository.java
+++ b/src/main/java/net/geant/nmaas/portal/persistent/repositories/ApplicationBaseRepository.java
@@ -1,9 +1,12 @@
 package net.geant.nmaas.portal.persistent.repositories;
 
 import net.geant.nmaas.portal.api.domain.ApplicationBaseS;
+import net.geant.nmaas.portal.persistent.entity.AppDescription;
 import net.geant.nmaas.portal.persistent.entity.ApplicationBase;
+import net.geant.nmaas.portal.persistent.entity.Tag;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -26,7 +29,18 @@ public interface ApplicationBaseRepository extends JpaRepository<ApplicationBase
 //            " WHERE a.state = 'ACTIVE' ", nativeQuery = true)
 //    List<ApplicationBaseSTest> findAllSmallQuery();
 
-    @Query("Select ab from ApplicationBase ab JOIN ApplicationVersion av on av.appVersionId = ab.id WHERE av.state = 'ACTIVE'")
+    @Query(value = "Select ab.* from application_base ab JOIN application_base_versions abv on abv.application_base_id = ab.id JOIN application_version av ON av.id = abv.versions_id WHERE av.state = 'ACTIVE'", nativeQuery = true)
     List<ApplicationBaseS> findAllSmall();
 
+//    @Query(value = "select ad.* FROM app_description ad JOIN application_base_descriptions abd ON ad.id = abd.descriptions_id WHERE abd.application_base_id =:base_id", nativeQuery = true)
+//    List<AppDescription> findDescriptionsForBase(Long base_id);
+//
+//    @Query(value = "select tg.* FROM tag tg JOIN application_base_tag abt ON tg.tag_id = abt.tag_id WHERE abt.application_base_id =?1", nativeQuery = true)
+//    List<Object> findTagsForBase(Long base_id);
+
+    @Query("Select ab.tags FROM ApplicationBase ab where ab.id =?1")
+    List<Tag> findAllBaseTag(Long base_id);
+
+    @Query("Select ab.descriptions FROM ApplicationBase ab where ab.id =?1")
+    List<AppDescription> findAllBaseDescription(Long base_id);
 }
\ No newline at end of file
diff --git a/src/main/java/net/geant/nmaas/portal/persistent/repositories/TagRepository.java b/src/main/java/net/geant/nmaas/portal/persistent/repositories/TagRepository.java
index bce8d0a1a2e93d7e31ded54164f72274de8bf021..3d1c846d8d0a9ca592a6ff7bd51b927e47f98852 100644
--- a/src/main/java/net/geant/nmaas/portal/persistent/repositories/TagRepository.java
+++ b/src/main/java/net/geant/nmaas/portal/persistent/repositories/TagRepository.java
@@ -1,10 +1,10 @@
 package net.geant.nmaas.portal.persistent.repositories;
 
-import java.util.Optional;
+import net.geant.nmaas.portal.persistent.entity.Tag;
 import org.springframework.data.jpa.repository.JpaRepository;
 
-import net.geant.nmaas.portal.persistent.entity.Tag;
+import java.util.Optional;
 
 public interface TagRepository extends JpaRepository<Tag, Long> {
-	Optional<Tag> findByName(String source);
-}
+    Optional<Tag> findByName(String source);
+}
\ No newline at end of file
diff --git a/src/main/java/net/geant/nmaas/portal/service/ApplicationBaseService.java b/src/main/java/net/geant/nmaas/portal/service/ApplicationBaseService.java
index 8df8c76cb250247843dedac345bc410ca32eb3ac..0f6ce93f96b401c9bada376339e903d6556bb9e0 100644
--- a/src/main/java/net/geant/nmaas/portal/service/ApplicationBaseService.java
+++ b/src/main/java/net/geant/nmaas/portal/service/ApplicationBaseService.java
@@ -19,7 +19,7 @@ public interface ApplicationBaseService {
     List<ApplicationBase> findAll();
     List<ApplicationBase> findAllActiveApps();
 
-    List<ApplicationBaseS> findAllActiveAppsSmall();
+    List<ApplicationBaseViewS> findAllActiveAppsSmall();
 
     ApplicationBase getBaseApp(Long id);
     ApplicationBase findByName(String name);
diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationBaseServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationBaseServiceImpl.java
index 93447679015cb39b50ee17287adf1915a9ff5e2c..04960f4c775cdcb123f31162d5c7eb7482eb18fa 100644
--- a/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationBaseServiceImpl.java
+++ b/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationBaseServiceImpl.java
@@ -2,7 +2,9 @@ package net.geant.nmaas.portal.service.impl;
 
 import lombok.AllArgsConstructor;
 import lombok.extern.log4j.Log4j2;
-import net.geant.nmaas.portal.api.domain.ApplicationBaseS;
+import net.geant.nmaas.portal.api.domain.AppDescriptionView;
+import net.geant.nmaas.portal.api.domain.ApplicationBaseViewS;
+import net.geant.nmaas.portal.api.domain.TagView;
 import net.geant.nmaas.portal.api.exception.MissingElementException;
 import net.geant.nmaas.portal.api.exception.ProcessingException;
 import net.geant.nmaas.portal.events.ApplicationActivatedEvent;
@@ -16,6 +18,8 @@ import net.geant.nmaas.portal.service.ApplicationBaseService;
 import net.geant.nmaas.portal.service.ApplicationStatePerDomainService;
 import net.geant.nmaas.portal.service.DomainService;
 import org.apache.commons.lang3.StringUtils;
+import org.modelmapper.ModelMapper;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 
@@ -24,6 +28,7 @@ import java.time.OffsetDateTime;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Optional;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 @Service
@@ -39,6 +44,9 @@ public class ApplicationBaseServiceImpl implements ApplicationBaseService {
     private final ApplicationEventPublisher eventPublisher;
     private final DomainService domainService;
 
+    @Autowired
+    protected ModelMapper modelMapper;
+
     @Override
     @Transactional
     public ApplicationBase create(ApplicationBase applicationBase) {
@@ -121,8 +129,14 @@ public class ApplicationBaseServiceImpl implements ApplicationBaseService {
                 .collect(Collectors.toList());
     }
 
-    public List<ApplicationBaseS> findAllActiveAppsSmall() {
-        return appBaseRepository.findAllSmall();
+    @Override
+    public List<ApplicationBaseViewS> findAllActiveAppsSmall() {
+
+        return appBaseRepository.findAllSmall().stream()
+                .map(app -> modelMapper.map(app, ApplicationBaseViewS.class))
+                .peek(app -> app.setDescriptions(List.of(modelMapper.map(appBaseRepository.findAllBaseDescription(app.getId()), AppDescriptionView[].class))))
+                .peek(app -> app.setTags(Set.of(modelMapper.map(appBaseRepository.findAllBaseTag(app.getId()), TagView[].class))))
+                .collect(Collectors.toList());
     }
 
     @Override
diff --git a/src/test/java/net/geant/nmaas/portal/service/impl/ApplicationBaseServiceTest.java b/src/test/java/net/geant/nmaas/portal/service/impl/ApplicationBaseServiceTest.java
index abaf4c3f2421a1c35e2f934290705d3336f69636..30f8865e9d0fd7ba29d8046d6137a906373aa7dd 100644
--- a/src/test/java/net/geant/nmaas/portal/service/impl/ApplicationBaseServiceTest.java
+++ b/src/test/java/net/geant/nmaas/portal/service/impl/ApplicationBaseServiceTest.java
@@ -14,6 +14,7 @@ import net.geant.nmaas.portal.service.ApplicationStatePerDomainService;
 import net.geant.nmaas.portal.service.DomainService;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.modelmapper.ModelMapper;
 import org.springframework.context.ApplicationEventPublisher;
 
 import java.util.Collections;
@@ -43,11 +44,13 @@ public class ApplicationBaseServiceTest {
     private final ApplicationEventPublisher eventPublisher= mock(ApplicationEventPublisher.class);
     private final DomainService domainService = mock(DomainService.class);
 
+    private final ModelMapper modelMapper = new ModelMapper();
+
     private ApplicationBaseService appBaseService;
 
     @BeforeEach
     void setup() {
-        this.appBaseService = new ApplicationBaseServiceImpl(appBaseRepo, tagRepo, applicationStatePerDomainService,eventPublisher, domainService);
+        this.appBaseService = new ApplicationBaseServiceImpl(appBaseRepo, tagRepo, applicationStatePerDomainService,eventPublisher, domainService, modelMapper);
         applicationBase1.setDescriptions(Collections.singletonList(
                 new AppDescription(11L, "en", "description", "full description")
         ));