diff --git a/src/main/java/biz/nynja/account/grid/ag/AdminServiceImpl.java b/src/main/java/biz/nynja/account/grid/ag/AdminServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..211b1fcbcadbe174ed03f458994b36e3deffc77b
--- /dev/null
+++ b/src/main/java/biz/nynja/account/grid/ag/AdminServiceImpl.java
@@ -0,0 +1,48 @@
+package biz.nynja.account.grid.ag;
+
+import org.lognet.springboot.grpc.GRpcService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import biz.nynja.account.admin.grpc.AccountsAdminResponse;
+import biz.nynja.account.admin.grpc.AccountsCount;
+import biz.nynja.account.admin.grpc.AdminAccountServiceGrpc;
+import biz.nynja.account.admin.grpc.EmptyRequest;
+import biz.nynja.account.admin.grpc.GetAllAccountsRequest;
+import biz.nynja.account.repositories.AccountRepository;
+import io.grpc.stub.StreamObserver;
+
+/**
+ * gRPC Admin service implementation.
+ * The service extends the protobuf generated class and overrides the needed methods. It also saves/retrieves the admin
+ * information.
+ */
+@GRpcService
+public class AdminServiceImpl extends AdminAccountServiceGrpc.AdminAccountServiceImplBase {
+
+ private AgGridService agGridService;
+
+ private AccountRepository accountRepository;
+
+ @Autowired
+ public AdminServiceImpl(AgGridService agGridService, AccountRepository accountRepository) {
+ this.agGridService = agGridService;
+ this.accountRepository = accountRepository;
+ }
+
+ @Override
+ public void getAllAccounts(GetAllAccountsRequest request, StreamObserver responseObserver) {
+
+ AccountsAdminResponse response = agGridService.getData(request.getEndRow(), request.getStartRow());
+
+ responseObserver.onNext(response);
+ responseObserver.onCompleted();
+ return;
+ }
+
+ @Override
+ public void getCountOfAllAccounts(EmptyRequest request, StreamObserver responseObserver) {
+ long count = accountRepository.count();
+ responseObserver.onNext(AccountsCount.newBuilder().setCount(Math.toIntExact(count)).build());
+ responseObserver.onCompleted();
+ }
+}
diff --git a/src/main/java/biz/nynja/account/grid/ag/AgGridController.java b/src/main/java/biz/nynja/account/grid/ag/AgGridController.java
new file mode 100644
index 0000000000000000000000000000000000000000..f7a14db4b288859231f58a369ba06ef9ebb51f55
--- /dev/null
+++ b/src/main/java/biz/nynja/account/grid/ag/AgGridController.java
@@ -0,0 +1,39 @@
+package biz.nynja.account.grid.ag;
+
+import java.util.HashMap;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import biz.nynja.account.grid.ag.request.GetRowsRequest;
+import biz.nynja.account.repositories.AccountRepository;
+
+@RestController
+public class AgGridController {
+
+ private AgGridService agGridService;
+
+ private AccountRepository accountRepository;
+
+ @Autowired
+ public AgGridController(AgGridService accountDao, AccountRepository accountRepository) {
+ this.agGridService = accountDao;
+ this.accountRepository = accountRepository;
+ }
+
+ /* @RequestMapping(method = RequestMethod.POST, value = "/getRows")
+ public ResponseEntity getRows(@RequestBody GetRowsRequest request) {
+ return ResponseEntity.ok(agGridService.getData(request));
+ }*/
+
+ @RequestMapping(method = RequestMethod.GET, value = "/getRowsCount")
+ public ResponseEntity> getCountOfRows() {
+ HashMap map = new HashMap<>();
+ map.put("lastRow", accountRepository.count());
+ return ResponseEntity.ok(map);
+ }
+}
diff --git a/src/main/java/biz/nynja/account/grid/ag/AgGridService.java b/src/main/java/biz/nynja/account/grid/ag/AgGridService.java
new file mode 100644
index 0000000000000000000000000000000000000000..a09d1686039be00edef87687bf7510030713fc8e
--- /dev/null
+++ b/src/main/java/biz/nynja/account/grid/ag/AgGridService.java
@@ -0,0 +1,54 @@
+package biz.nynja.account.grid.ag;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.cassandra.core.query.CassandraPageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Slice;
+import org.springframework.stereotype.Service;
+
+import biz.nynja.account.admin.grpc.AccountAdminResponse;
+import biz.nynja.account.admin.grpc.AccountsAdminResponse;
+import biz.nynja.account.grpc.AccountDetails;
+import biz.nynja.account.models.Account;
+import biz.nynja.account.repositories.AccountRepository;
+
+@Service
+public class AgGridService {
+
+ private AccountRepository accountRepository;
+
+ private Slice accounts = null;
+
+ @Autowired
+ public AgGridService(AccountRepository accountRepository) {
+ this.accountRepository = accountRepository;
+ }
+
+ public AccountsAdminResponse getData(int endRow, int startRow) {
+
+ Map> pivotValues = new HashMap>();
+
+ // Sort sort = new Sort(new Sort.Order(Direction.ASC, "type"));
+
+ Pageable pageable = CassandraPageRequest.of(0, endRow);
+
+ accounts = accountRepository.findAll(pageable);
+ List rows = new ArrayList<>();
+ accounts.getContent().subList(startRow - 1, accounts.getNumberOfElements()).forEach(account -> {
+ AccountDetails accountDetails = account.toProto();
+ rows.add(accountDetails);
+ });
+
+ // create response with our results
+
+ AccountsAdminResponse response = AccountsAdminResponse.newBuilder()
+ .setAccountsResponse(AccountAdminResponse.newBuilder().addAllAccountDetails(rows).build()).build();
+ return response;
+ }
+
+}
diff --git a/src/main/java/biz/nynja/account/grid/ag/GetRowsResponse.java b/src/main/java/biz/nynja/account/grid/ag/GetRowsResponse.java
new file mode 100644
index 0000000000000000000000000000000000000000..164390213ee4509d6420d0a319df666d664d9c3d
--- /dev/null
+++ b/src/main/java/biz/nynja/account/grid/ag/GetRowsResponse.java
@@ -0,0 +1,44 @@
+package biz.nynja.account.grid.ag;
+
+import java.util.List;
+import java.util.Map;
+
+public class GetRowsResponse {
+
+ private List