diff --git a/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalController.java b/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalController.java
index 423ec9985a..343378b6f5 100644
--- a/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalController.java
+++ b/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalController.java
@@ -26,8 +26,5 @@ public interface PeerPortalController {
 	
 	PeerRequest storePeerRequest(final FileUpload upload, PeerRequest request) throws Exception;
 	
-	void notifyOfReviewRating(PeerReview review);
-	
-	void notifyCompletionOfReview(PeerReview review);
 
 }
diff --git a/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalControllerImpl.java b/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalControllerImpl.java
index 717f91afc0..4aa454fe5e 100644
--- a/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalControllerImpl.java
+++ b/src/main/java/se/su/dsv/scipro/peer/data/dao/controllers/PeerPortalControllerImpl.java
@@ -5,22 +5,16 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
-import java.util.Properties;
 
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
-import org.apache.wicket.PageParameters;
-import org.apache.wicket.RequestCycle;
 import org.apache.wicket.markup.html.form.upload.FileUpload;
-import org.apache.wicket.protocol.http.RequestUtils;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.transaction.annotation.Transactional;
 
-import se.su.dsv.scipro.conference.pages.SupervisorConferencePage;
 import se.su.dsv.scipro.data.controllers.NotificationController;
-import se.su.dsv.scipro.data.controllers.NotificationMessage;
 import se.su.dsv.scipro.data.dao.interfaces.FileDescriptionDao;
 import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
 import se.su.dsv.scipro.data.dataobjects.FileDescription;
@@ -28,22 +22,14 @@ import se.su.dsv.scipro.data.dataobjects.Project;
 import se.su.dsv.scipro.data.dataobjects.ProjectClass;
 import se.su.dsv.scipro.data.dataobjects.ProjectClassSettings;
 import se.su.dsv.scipro.data.dataobjects.Student;
-import se.su.dsv.scipro.data.dataobjects.User;
-import se.su.dsv.scipro.data.enums.NotificationEventType;
-import se.su.dsv.scipro.data.enums.NotificationPriority;
 import se.su.dsv.scipro.exceptions.UpdatedSincePageLoadException;
 import se.su.dsv.scipro.peer.data.dao.interfaces.PeerRequestDao;
 import se.su.dsv.scipro.peer.data.dao.interfaces.PeerReviewDao;
 import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
 import se.su.dsv.scipro.peer.data.dataobjects.PeerReview;
 import se.su.dsv.scipro.peer.enums.RequestStatus;
-import se.su.dsv.scipro.peer.pages.ProjectPeerReviewPage;
-import se.su.dsv.scipro.peer.pages.ProjectPeerStatsPage;
-import se.su.dsv.scipro.peer.pages.SupervisorPeerReviewPage;
 import se.su.dsv.scipro.repository.FileRepository;
 import se.su.dsv.scipro.repository.util.FileStorageException;
-import se.su.dsv.scipro.security.auth.roles.Roles;
-import se.su.dsv.scipro.util.PropsUtils;
 
 /**
  * 
@@ -247,7 +233,7 @@ public class PeerPortalControllerImpl implements PeerPortalController {
 			request = peerRequestDao.save(request);
 
 			// Notify the requester
-			notifyAcceptOfReview(request, student, project);
+			notificationController.notifyAcceptOfReview(request, student, project);
 
 			return review;
 		} catch (Exception e) {
@@ -267,151 +253,7 @@ public class PeerPortalControllerImpl implements PeerPortalController {
 		}
 	}
 
-	/**
-	 * TODO Rewrite using template engine of some sort
-	 * 
-	 * @param request
-	 * @param student
-	 * @param project
-	 */
-	protected void notifyAcceptOfReview(PeerRequest request, Student student, Project project) {
-		try {
-			Properties props = null;
-
-			props = PropsUtils.load("notification.properties");
-
-			String mailSubject = props.getProperty("acceptPeerReviewSubject");
-			String requestAccepted = props.getProperty("requestAccepted");
-			String heShe = props.getProperty("heShe");
-			String complete = props.getProperty("complete");
-
-			User requestingUser = request.getRequester().getUser();
-
-			String messageBody = requestAccepted
-					+ student.getUser().toString()
-					+ heShe
-					+ project.getProjectClass().getProjectClassSettings()
-							.getNumDaysToSubmitPeerReview() + complete;
-			
-			String webNotificationMessage = requestAccepted + student.getUser().toString();
-
-			NotificationMessage notificationMessage = new NotificationMessage(webNotificationMessage,
-					mailSubject, messageBody);
-
-			PageParameters pp = new PageParameters();
-
-			String peerStatsUrl = RequestUtils.toAbsolutePath(RequestCycle.get()
-					.urlFor(ProjectPeerStatsPage.class, pp).toString());
-
-			notificationController.processNotification(requestingUser, notificationMessage,
-					peerStatsUrl, NotificationPriority.MEDIUM);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * TODO Rewrite
-	 * 
-	 * @param review
-	 */
-	public void notifyCompletionOfReview(PeerReview review) {
-		try {
-
-			Properties props = null;
-			props = PropsUtils.load("notification.properties");
-			String mailSubject = props.getProperty("completedReviewSubject");
-			String requestReviewed = props.getProperty("requestReviewed");
-			String supervisorMessageBody = props.getProperty("supervisorMessageBody");
-			String supervisorMessageBody2 = props.getProperty("supervisorMessageBody2");
-			String supervisorMessageBody3 = props.getProperty("supervisorMessageBody3");
-			String commaWithLinebreak = props.getProperty("commaWithLinebreak");
-			String inProject = props.getProperty("inProject");
-			String hasPerformed = props.getProperty("hasPerformed");
-			PeerRequest peerRequest = review.getPeerRequest();
-			User requestingUser = peerRequest.getRequester().getUser();
-
-			PageParameters pp = new PageParameters();
-			pp.add(PeerReview.PP_PEER_REVIEW_ID, review.getId().toString());
-
-			String reviewUrl = RequestUtils.toAbsolutePath(RequestCycle.get()
-					.urlFor(ProjectPeerReviewPage.class, pp).toString());
-			String supervisorReviewUrl = RequestUtils.toAbsolutePath(RequestCycle.get()
-					.urlFor(SupervisorPeerReviewPage.class, pp).toString());
-
-			//Message for student when his/her review request is completed.
-			String messageBody = requestReviewed;
-
-			NotificationMessage notificationMessage = new NotificationMessage(messageBody,
-					mailSubject, messageBody);
-
-			notificationController.processNotification(requestingUser, notificationMessage,
-					reviewUrl, NotificationPriority.MEDIUM);
-			
-			//Message for supervisor of the project with a completed review.
-			messageBody = 
-				supervisorMessageBody
-					+ peerRequest.getProject().getTitle()
-					+ supervisorMessageBody2;
-			User requestSupervisor = peerRequest.getProject().getHeadSupervisor().getUser();
-
-			NotificationMessage notificationMessageSupervisorOfProject = new NotificationMessage(messageBody,
-					mailSubject, messageBody);
-			
-			notificationController.processNotification(requestSupervisor, 
-					notificationMessageSupervisorOfProject, supervisorReviewUrl, NotificationPriority.MEDIUM);
-
-			//Message for supervisor of the reviewer that have made a review for another project.
-			
-			String webNotificationMessage = review.getReviewer().getUser().toString() + inProject + review.getProject().getTitle() + hasPerformed;
-			
-			messageBody = supervisorMessageBody
-					+ review.getProject().getTitle()
-					+ commaWithLinebreak + review.getReviewer().getUser().toString()
-					+ supervisorMessageBody3;
-		
-			User reviewSupervisor = review.getProject().getHeadSupervisor().getUser();
-			NotificationMessage notificationMessageSupervisorOfReviewer = new NotificationMessage(webNotificationMessage,
-					mailSubject, messageBody);
-			
-			notificationController.processNotification(reviewSupervisor, notificationMessageSupervisorOfReviewer, supervisorReviewUrl, NotificationPriority.MEDIUM);
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * TODO Rewrite
-	 * 
-	 * @param review
-	 */
-	public void notifyOfReviewRating(PeerReview review) {
-		try {
-			Properties props = null;
-			props = PropsUtils.load("notification.properties");
-			String mailSubject = props.getProperty("reviewRatedSubject");
-			String reviewRatedBody = props.getProperty("reviewRatedBody");
-			User reviewingUser = review.getReviewer().getUser();
-
-			PageParameters pp = new PageParameters();
-			pp.add(PeerReview.PP_PEER_REVIEW_ID, review.getId().toString());
-			String projectReviewUrl = RequestUtils.toAbsolutePath(RequestCycle.get()
-					.urlFor(ProjectPeerReviewPage.class, pp).toString());
-
-
-			String messageBody = reviewRatedBody;
-			
-			NotificationMessage notificationMessage = new NotificationMessage(messageBody,
-					mailSubject, messageBody);
-
-			notificationController.processNotification(reviewingUser,  notificationMessage,
-					projectReviewUrl, NotificationPriority.MEDIUM);
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+	
 
 	/**
 	 * Store file to a pre-populated PeerRequest
diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewPerformReviewPanel.java b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewPerformReviewPanel.java
index ae8961d3eb..a3da423c9d 100644
--- a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewPerformReviewPanel.java
+++ b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewPerformReviewPanel.java
@@ -33,6 +33,7 @@ import org.odlabs.wiquery.core.javascript.JsStatement;
 import se.su.dsv.scipro.SciProSession;
 import se.su.dsv.scipro.components.JavascriptCountdown;
 import se.su.dsv.scipro.data.DomainObjectDetachableModel;
+import se.su.dsv.scipro.data.controllers.NotificationController;
 import se.su.dsv.scipro.data.dataobjects.User;
 import se.su.dsv.scipro.peer.data.dao.controllers.PeerPortalController;
 import se.su.dsv.scipro.peer.data.dao.interfaces.PeerRequestDao;
@@ -66,6 +67,9 @@ public class PeerReviewPerformReviewPanel extends Panel {
 	@SpringBean
 	private PeerPortalController peerPortalController;
 	
+	@SpringBean
+	private NotificationController notificationController;
+	
 	public PeerReviewPerformReviewPanel(String id, final PeerReview peerReview) {
 		super(id);
 		/*
@@ -257,7 +261,7 @@ public class PeerReviewPerformReviewPanel extends Panel {
 									peerReview.setSubmitted(true);
 									peerRequest.setStatus(RequestStatus.FINISHED);
 									getSession().info("Your review has been saved, thank you!");
-									peerPortalController.notifyCompletionOfReview(peerReview);
+									notificationController.notifyCompletionOfReview(peerReview);
 								}
 								
 								peerRequest = peerRequestDao.save(peerRequest);
diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewRatingPanel.java b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewRatingPanel.java
index 4a706eba9e..9e777a0f33 100644
--- a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewRatingPanel.java
+++ b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewRatingPanel.java
@@ -19,6 +19,7 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import se.su.dsv.scipro.SciProSession;
 import se.su.dsv.scipro.components.StarRater;
+import se.su.dsv.scipro.data.controllers.NotificationController;
 import se.su.dsv.scipro.peer.data.dao.controllers.PeerPortalController;
 import se.su.dsv.scipro.peer.data.dao.interfaces.ReviewRatingDao;
 import se.su.dsv.scipro.peer.data.dataobjects.PeerReview;
@@ -31,7 +32,7 @@ public class PeerReviewRatingPanel extends Panel {
 	@SpringBean
 	private ReviewRatingDao reviewRatingDao;
 	@SpringBean
-	private PeerPortalController peerPortalController;
+	private NotificationController notificationController;
 
 	public PeerReviewRatingPanel(String id, final IModel<PeerReview> model) {
 		super(id, model);
@@ -108,7 +109,7 @@ public class PeerReviewRatingPanel extends Panel {
 					starRating.setReadOnly(true);
 					target.addComponent(PeerReviewRatingPanel.this);
 					
-					peerPortalController.notifyOfReviewRating(rating.getPeerReview());
+					notificationController.notifyOfReviewRating(rating.getPeerReview());
 					
 				}