diff --git a/pom.xml b/pom.xml
index 9722a75970..c118b9c84e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,11 +24,6 @@
             <name>Spring Maven MILESTONE Repository</name>
             <url>http://repo.springsource.org/libs-milestone</url>
         </repository>
-        <repository>
-            <id>spring-roo-repository</id>
-            <name>Spring Roo Repository</name>
-            <url>http://spring-roo-repository.springsource.org/release</url>
-        </repository>
     </repositories>
     <dependencies>
         <!-- WICKET DEPENDENCIES -->
diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorServiceImpl.java
index df56d6fb63..9041daecb2 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorServiceImpl.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorServiceImpl.java
@@ -27,8 +27,8 @@ public class SupervisorServiceImpl extends AbstractQueryService<Employee, Long>
     }
 
     @Override
-    public List<Employee> findAllEmployees() {
-        return supervisorRepo.findAll();
+    public List<Employee> findAllEmployees(org.springframework.data.domain.Sort orders) {
+        return supervisorRepo.findAll(orders);
     }
 
 }
diff --git a/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorService.java b/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorService.java
index 6189a4c8ba..439d9e1c97 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorService.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorService.java
@@ -8,5 +8,5 @@ import java.util.List;
  * date: 2012 03 26
  */
 public interface SupervisorService extends CrudService<Employee,Long>, QueryService<Employee, Long> {
-    public List<Employee> findAllEmployees();
+    public List<Employee> findAllEmployees(org.springframework.data.domain.Sort orders);
 }
diff --git a/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java b/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java
index fcc16afbf2..11b6ffa01f 100644
--- a/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java
+++ b/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java
@@ -5,15 +5,19 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
 import org.springframework.test.annotation.Rollback;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.transaction.annotation.Transactional;
 import se.su.dsv.scipro.data.dao.interfaces.UserDao;
-import se.su.dsv.scipro.data.dao.interfaces.UsernameDao;
 import se.su.dsv.scipro.data.dataobjects.Employee;
 import se.su.dsv.scipro.data.dataobjects.User;
-import se.su.dsv.scipro.data.dataobjects.Username;
+import se.su.dsv.scipro.match.Weights;
+import se.su.dsv.scipro.match.dao.interfaces.KeywordDao;
+import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao;
+import se.su.dsv.scipro.match.dataobject.Keyword;
+import se.su.dsv.scipro.match.dataobject.KeywordType;
 import se.su.dsv.scipro.springdata.services.SupervisorService;
 
 import java.util.ArrayList;
@@ -24,6 +28,7 @@ import static org.junit.Assert.*;
 @ContextConfiguration(inheritLocations = false, locations = {
         "classpath:test-applicationContext.xml"
 })
+
 public class TestSupervisor {
 
     @Autowired
@@ -32,11 +37,57 @@ public class TestSupervisor {
     @Autowired
     private UserDao userDao;
 
+    @Autowired
+    private KeywordDao keywordDao;
+
+    @Autowired
+    private KeywordTypeDao keywordTypeDao;
+
+    private KeywordType keywordTypeArea;
+    private KeywordType keywordTypeWord;
+    private Weights weights;
+
     @SuppressWarnings("EmptyMethod")
     @Before
     public void startTransaction() throws Exception {
+        keywordTypeArea = keywordTypeDao.save(new KeywordType("Area"));
+        keywordTypeWord = keywordTypeDao.save(new KeywordType("Word"));
+        weights = createWeights();
     }
 
+    private Weights createWeights() {
+        Weights weights = new Weights();
+        weights.setKeywordPoints(3);                // "Word" + "Unit"??
+        weights.setResearchAreaPoints(5);          // "Area"
+        weights.setPreferredSupervisorPoints(10);
+        return weights;
+    }
+
+    private Employee getEmployee(final String firstName, final String lastName, final String email) {
+        User user = new User();
+        user.setFirstName(firstName);
+        user.setLastName(lastName);
+        user.setEmailAddress(email);
+        user = userDao.save(user);
+        assertNotNull(user);
+        Employee employee = new Employee();
+        employee.setUser(user);
+        return supervisorService.save(employee);
+    }
+
+
+    private Keyword createKeyword(final KeywordType keyWordType , final String keyWordName, final boolean deleted) {
+        Keyword keyword = keywordDao.getKeywordByNameAndType(keyWordName, keyWordType);
+        if(keyword == null)  {
+            keyword = new Keyword();
+            keyword.setType(keyWordType);
+            keyword.setKeyword(keyWordName);
+            keyword.setDeleted(deleted);
+            return keywordDao.save(keyword);
+        } else {
+            return keyword;
+        }
+    }
 
     /**
      *   Test for implementing a supervisorService with Spring Data
@@ -44,18 +95,69 @@ public class TestSupervisor {
     @Test
     @Transactional
     @Rollback
-    public void findAllSupervisorsWithSpringData() {
+    public void findSupervisorLastName() {
         List<Employee> employeeList = new ArrayList<Employee>();
-        User davidH = new User();
-        davidH.setFirstName("David");
-        davidH.setLastName("Hallberg");
-        davidH.setEmailAddress("dhallb@dsv.su.se");
-        davidH = userDao.save(davidH);
+        Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se");
+        Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se");
+        Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se");
+        Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se");
+        Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se");
+        Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se");
+        Sort sortOrder = new Sort("user.lastName");
+        employeeList.addAll(supervisorService.findAllEmployees(sortOrder));
+        assertFalse(employeeList.isEmpty());
+        assertTrue(employeeList.get(0).equals(friis));
+        assertTrue(employeeList.get(5).equals(tholerus));
+    }
 
-        Employee supervisor = new Employee();
-        supervisor.setUser(davidH);
-        supervisorService.save(supervisor);
-       // employeeList.addAll(supervisorService.findAllEmployees());
-       // assertTrue(employeeList.size() == 1);
+    /**
+     *   Test for implementing a supervisorService with Spring Data
+     */
+    @Test
+    @Transactional
+    @Rollback
+    public void findSupervisorFirstName() {
+        List<Employee> employeeList = new ArrayList<Employee>();
+        Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se");
+        Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se");
+        Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se");
+        Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se");
+        Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se");
+        Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se");
+        Sort sortOrder = new Sort("user.firstName");
+        employeeList.addAll(supervisorService.findAllEmployees(sortOrder));
+        assertFalse(employeeList.isEmpty());
+        assertTrue(employeeList.get(0).equals(hallberg));
+        assertTrue(employeeList.get(5).equals(tholerus));
+    }
+
+    /**
+     *   Test for implementing a supervisorService with Spring Data
+     */
+    @Test
+    @Transactional
+    @Rollback
+    public void findSupervisorKeywords() {
+        List<Employee> employeeList = new ArrayList<Employee>();
+        Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se");
+        Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se");
+        Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se");
+        Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se");
+        Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se");
+        Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se");
+
+
+
+        Keyword keyword = createKeyword(keywordTypeWord, "JUnit", false);
+        herder.getKeywords().getAll().add(keyword);
+        keyword = createKeyword(keywordTypeWord, "Maven", false);
+        herder.getKeywords().getAll().add(keyword);
+        herder =  supervisorService.save(herder);
+
+      /*  Sort sortOrder = new Sort("keywords.getAll().size");
+        employeeList.addAll(supervisorService.findAllEmployees(sortOrder));
+        assertFalse(employeeList.isEmpty());
+        assertTrue(employeeList.get(0).equals(herder));*/
+//assertTrue(employeeList.get(5).equals(tholerus));
     }
 }