Index: src/main/java/it/finki/tinki/repository/TeamRepository.java
===================================================================
--- src/main/java/it/finki/tinki/repository/TeamRepository.java	(revision 7edede91d3117ee5b1a25a53d07ebf2c12663955)
+++ src/main/java/it/finki/tinki/repository/TeamRepository.java	(revision 504c3efac278eaf90577041fb77abf09abad1ac1)
@@ -5,6 +5,9 @@
 import org.springframework.stereotype.Repository;
 
+import java.util.Optional;
+
 @Repository
 public interface TeamRepository extends JpaRepository<Team, Long> {
     Team findByEmailAndPassword(String email, String password);
+    Optional<Team> findByEmail(String email);
 }
Index: src/main/java/it/finki/tinki/service/impl/AccountServiceImpl.java
===================================================================
--- src/main/java/it/finki/tinki/service/impl/AccountServiceImpl.java	(revision 7edede91d3117ee5b1a25a53d07ebf2c12663955)
+++ src/main/java/it/finki/tinki/service/impl/AccountServiceImpl.java	(revision 504c3efac278eaf90577041fb77abf09abad1ac1)
@@ -67,3 +67,16 @@
         return this.userRepository.save(u);
     }
+
+    public Account registerTeam(String email, String password, String name, int members){
+        if(email==null || email.isEmpty() || password==null || password.isEmpty() || name==null || name.isEmpty()){
+            throw new InvalidArgumentsException();
+        }
+
+        if(this.teamRepository.findByEmail(email).isPresent()){
+            throw new UserExistsException();
+        }
+
+        Team t = new Team(email, password, name, AccountType.TEAM, members);
+        return this.teamRepository.save(t);
+    }
 }
