diff --git a/full/Changes b/full/Changes
index be40c69..40a067f 100644
--- a/full/Changes
+++ b/full/Changes
@@ -17,7 +17,8 @@
 	- updated status codes and error messages to be more detailed (margaretha)
 	- testing mail implementation using embedded jetty jndi (margaretha)
 	- fixed collection rewrite regarding OR operation with other fields (margaretha)
-	- implemented sending mail using spring injection and removed jetty jndi (margaretha) 
+	- implemented sending mail using spring injection and removed jetty jndi (margaretha)
+	- fixed and updated velocity template (margaretha)
 	
 version 0.59.9 
 19/01/2018
diff --git a/full/notification.vm b/full/notification.vm
deleted file mode 100644
index 02cf5c6..0000000
--- a/full/notification.vm
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-	<body>
-		<h3>Hi ${username}, you are invited to group {$group} by ${inviter}!</h3>
-		<p>
-			Login to KorAP to accept or reject the invitation.
-			<br /> 
-			The invitation is valid for 30 minutes.
-		</p>
-		<p>
-			Do not reply! This is an automated generated email.
-		</p>
-	</body>
-</html>
\ No newline at end of file
diff --git a/full/pom.xml b/full/pom.xml
index df0d2a8..1391cc4 100644
--- a/full/pom.xml
+++ b/full/pom.xml
@@ -25,6 +25,7 @@
 					<include>**/*.kustvakt</include>
 					<include>**/*.properties</include>
 					<include>**/*.sql</include>
+					<include>**/*.vm</include>
 				</includes>
 			</resource>
 		</resources>
@@ -224,6 +225,11 @@
 			<version>${jersey.version}</version>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+		    <groupId>com.sun.jersey</groupId>
+		    <artifactId>jersey-json</artifactId>
+		    <version>${jersey.version}</version>
+		</dependency>
 
 		<!-- Spring -->
 		<dependency>
@@ -248,7 +254,7 @@
 		</dependency>
 
 		<!-- jetty -->
-		<dependency>
+		<!-- <dependency>
 			<groupId>org.eclipse.jetty</groupId>
 			<artifactId>jetty-jndi</artifactId>
 			<version>${jetty.version}</version>
@@ -257,7 +263,7 @@
 			<groupId>org.eclipse.jetty</groupId>
 			<artifactId>jetty-plus</artifactId>
 			<version>${jetty.version}</version>
-		</dependency>
+		</dependency> -->
 
 		<!-- velocity -->
 		<dependency>
diff --git a/full/src/main/java/de/ids_mannheim/korap/service/MailService.java b/full/src/main/java/de/ids_mannheim/korap/service/MailService.java
index 75d5176..ff05bbe 100644
--- a/full/src/main/java/de/ids_mannheim/korap/service/MailService.java
+++ b/full/src/main/java/de/ids_mannheim/korap/service/MailService.java
@@ -45,7 +45,7 @@
                 MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
                 message.setTo(new InternetAddress(invitee.getEmail()));
                 message.setFrom(sender);
-                message.setSubject("Invitation to join group");
+                message.setSubject("Invitation to join "+groupName);
                 message.setText(prepareText(inviteeName, groupName, inviter),
                         true);
             }
@@ -62,12 +62,8 @@
         context.put("inviter", inviter);
         
         StringWriter stringWriter = new StringWriter();
-//        URL url = getClass().getClassLoader().getResource("notification.vm");
-//        System.out.println(url);
-//        Template t = velocityEngine.getTemplate(url.toString());
-//        System.out.println(t);
         
-        velocityEngine.mergeTemplate("notification.vm",
+        velocityEngine.mergeTemplate("templates/notification.vm",
                 StandardCharsets.UTF_8.name(), context, stringWriter);
         
         String message = stringWriter.toString();
diff --git a/full/src/main/resources/WEB-INF/web.xml b/full/src/main/resources/WEB-INF/web.xml
deleted file mode 100644
index 4c2a254..0000000
--- a/full/src/main/resources/WEB-INF/web.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<resource-ref>
-  <res-ref-name>mail/Session</res-ref-name>
-  <res-type>javax.mail.Session</res-type>
-  <res-auth>Container</res-auth>
-</resource-ref>
\ No newline at end of file
diff --git a/full/src/main/resources/log4j.properties b/full/src/main/resources/log4j.properties
index e688b81..c747b68 100644
--- a/full/src/main/resources/log4j.properties
+++ b/full/src/main/resources/log4j.properties
@@ -4,9 +4,10 @@
 log4j.rootLogger=ERROR, stdout, debugLog
 log4j.logger.log=ERROR, errorLog
 
-#log4j.logger.de.ids_mannheim.korap.service.VirtualCorpusService = error, debugLog
 #log4j.logger.de.ids_mannheim.korap.web.controller.AuthenticationController = debug, debugLog, stdout
-#log4j.logger.de.ids_mannheim.korap.service.UserGroupService= stdout, debugLog
+#log4j.logger.de.ids_mannheim.korap.service.UserGroupService= debug, stdout, debugLog
+#log4j.logger.de.ids_mannheim.korap.rewrite.CollectionRewrite= debug, stdout, debugLog
+#log4j.logger.de.ids_mannheim.korap.service.MailService= debug, stdout, debugLog
 
 # Direct log messages to stdout
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
diff --git a/full/src/main/resources/templates/notification.vm b/full/src/main/resources/templates/notification.vm
new file mode 100644
index 0000000..254ad83
--- /dev/null
+++ b/full/src/main/resources/templates/notification.vm
@@ -0,0 +1,12 @@
+<html>
+    <body>
+        <h3>Hi $username,</h3>
+        <p> you have been invited to group $group by $inviter! </p>
+        <p> Please login to <a href="https://korap.ids-mannheim.de/kalamar">KorAP</a> with your
+            account to accept or reject this invitation within 30 minutes. </p>
+        <p>After joining a group, you will be able to access virtual corpora shared with members of
+            the group. If you would like share your virtual corpus to a group, please contact the
+            group admin.</p>
+        <p> This is an automated generated email. Please do not reply directly to this e-mail. </p>
+    </body>
+</html>
\ No newline at end of file
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
index f5f44cb..be39d02 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
@@ -445,8 +445,10 @@
         assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
         assertEquals(StatusCodes.GROUP_MEMBER_EXISTS,
                 node.at("/errors/0/0").asInt());
-        assertEquals("Username marlin with status PENDING exists in the user-group "
-                + "dory group", node.at("/errors/0/1").asText());
+        assertEquals(
+                "Username marlin with status PENDING exists in the user-group "
+                        + "dory group",
+                node.at("/errors/0/1").asText());
         assertEquals("[marlin, PENDING, dory group]",
                 node.at("/errors/0/2").asText());
     }
@@ -470,8 +472,7 @@
                                 "pass"))
                 .entity(userGroup).post(ClientResponse.class);
 
-                String entity = response.getEntity(String.class);
-                System.out.println(entity);
+        String entity = response.getEntity(String.class);
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
 
         // check member
@@ -653,7 +654,7 @@
                 node.at("/errors/0/1").asText());
         assertEquals("[pearl, dory group]", node.at("/errors/0/2").asText());
     }
-    
+
     @Test
     public void testUnsubscribePendingMember ()
             throws UniformInterfaceException, ClientHandlerException,
@@ -661,7 +662,7 @@
 
         JsonNode node = retrieveUserGroups("marlin");
         assertEquals(2, node.size());
-        
+
         MultivaluedMap<String, String> form = new MultivaluedMapImpl();
         // dory group
         form.add("groupId", "2");
@@ -678,9 +679,9 @@
         //        System.out.println(entity);
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
 
-         node = retrieveUserGroups("marlin");
+        node = retrieveUserGroups("marlin");
         assertEquals(1, node.size());
-        
+
         // invite marlin to dory group to set back the GroupMemberStatus.PENDING
         testInviteDeletedMember();
     }
