Index: src/main/java/it/finki/charitable/controller/DonationPostController.java
===================================================================
--- src/main/java/it/finki/charitable/controller/DonationPostController.java	(revision 55775667201163b458d59d683882d62bc92839e0)
+++ src/main/java/it/finki/charitable/controller/DonationPostController.java	(revision f0d5cb7499a773ecd1cbe9fdfc714a00f3906010)
@@ -1,8 +1,5 @@
 package it.finki.charitable.controller;
 
-import it.finki.charitable.entities.AppUser;
-import it.finki.charitable.entities.DonationInformation;
-import it.finki.charitable.entities.DonationPost;
-import it.finki.charitable.entities.FundsCollected;
+import it.finki.charitable.entities.*;
 import it.finki.charitable.services.DonationInformationService;
 import it.finki.charitable.services.DonationPostService;
@@ -183,5 +180,5 @@
         DonationInformation donationInformation = new DonationInformation(amount, post.getId(), post.getTitle());
         donationInformationService.save(donationInformation);
-        AppUser user = userService.loadUserByUsername(SecurityContextHolder.getContext().getAuthentication().getName());
+        MainUser user = (MainUser) userService.loadUserByUsername(SecurityContextHolder.getContext().getAuthentication().getName());
         user.getDonationInformation().add(donationInformation);
         userService.saveUser(user);
Index: src/main/java/it/finki/charitable/controller/HomeController.java
===================================================================
--- src/main/java/it/finki/charitable/controller/HomeController.java	(revision 55775667201163b458d59d683882d62bc92839e0)
+++ src/main/java/it/finki/charitable/controller/HomeController.java	(revision f0d5cb7499a773ecd1cbe9fdfc714a00f3906010)
@@ -2,4 +2,6 @@
 
 import it.finki.charitable.entities.AppUser;
+import it.finki.charitable.entities.MainUser;
+import it.finki.charitable.entities.Moderator;
 import it.finki.charitable.entities.UserRole;
 import it.finki.charitable.security.ConfirmationToken;
@@ -89,5 +91,5 @@
         }
 
-        AppUser user = new AppUser();
+        AppUser user = new MainUser();
         user.setFirstName(firstName);
         user.setLastName(lastName);
Index: src/main/java/it/finki/charitable/controller/UserProfileController.java
===================================================================
--- src/main/java/it/finki/charitable/controller/UserProfileController.java	(revision 55775667201163b458d59d683882d62bc92839e0)
+++ src/main/java/it/finki/charitable/controller/UserProfileController.java	(revision f0d5cb7499a773ecd1cbe9fdfc714a00f3906010)
@@ -4,4 +4,5 @@
 import it.finki.charitable.entities.DonationInformation;
 import it.finki.charitable.entities.DonationPost;
+import it.finki.charitable.entities.MainUser;
 import it.finki.charitable.security.PasswordEncoder;
 import it.finki.charitable.services.DonationPostService;
@@ -37,5 +38,5 @@
     public String myDonations(Model model) {
         model.addAttribute("myDonations", true);
-        AppUser user = userService.loadUserByUsername(SecurityContextHolder.getContext().getAuthentication().getName());
+        MainUser user = (MainUser) userService.loadUserByUsername(SecurityContextHolder.getContext().getAuthentication().getName());
         List<DonationInformation> donations = user.getDonationInformation();
         model.addAttribute("donations", donations);
@@ -89,5 +90,5 @@
         }
 
-        AppUser user = (AppUser) model.getAttribute("user");
+        MainUser user = (MainUser) model.getAttribute("user");
         user.setCreditCardInfo(cardName + "," + cardNumber + "," + expiryDate + "," + cvv);
         userService.saveUser(user);
@@ -98,5 +99,5 @@
     @RequestMapping("/removeCardInfo")
     public String removeCardInfo(Model model) {
-        AppUser user = (AppUser) model.getAttribute("user");
+        MainUser user = (MainUser) model.getAttribute("user");
         user.setCreditCardInfo(null);
         userService.saveUser(user);
Index: src/main/java/it/finki/charitable/entities/AppUser.java
===================================================================
--- src/main/java/it/finki/charitable/entities/AppUser.java	(revision 55775667201163b458d59d683882d62bc92839e0)
+++ src/main/java/it/finki/charitable/entities/AppUser.java	(revision f0d5cb7499a773ecd1cbe9fdfc714a00f3906010)
@@ -36,11 +36,7 @@
     private String email;
     private String password;
-    private String creditCardInfo;
     @Enumerated(EnumType.STRING)
     private UserRole userRole;
     private Boolean enabled;
-
-    @OneToMany
-    private List<DonationInformation> donationInformation = new ArrayList<>();
 
     public AppUser() {
@@ -83,12 +79,4 @@
     }
 
-    public String getCreditCardInfo() {
-        return creditCardInfo;
-    }
-
-    public void setCreditCardInfo(String creditCardInfo) {
-        this.creditCardInfo = creditCardInfo;
-    }
-
     public UserRole getUserRole() {
         return userRole;
@@ -105,12 +93,4 @@
     public void setEnabled(Boolean enabled) {
         this.enabled = enabled;
-    }
-
-    public List<DonationInformation> getDonationInformation() {
-        return donationInformation;
-    }
-
-    public void setDonationInformation(List<DonationInformation> donationInformation) {
-        this.donationInformation = donationInformation;
     }
 
Index: src/main/java/it/finki/charitable/entities/MainUser.java
===================================================================
--- src/main/java/it/finki/charitable/entities/MainUser.java	(revision f0d5cb7499a773ecd1cbe9fdfc714a00f3906010)
+++ src/main/java/it/finki/charitable/entities/MainUser.java	(revision f0d5cb7499a773ecd1cbe9fdfc714a00f3906010)
@@ -0,0 +1,30 @@
+package it.finki.charitable.entities;
+
+import javax.persistence.Entity;
+import javax.persistence.OneToMany;
+import java.util.ArrayList;
+import java.util.List;
+
+@Entity
+public class MainUser extends AppUser {
+    private String creditCardInfo;
+
+    @OneToMany
+    private List<DonationInformation> donationInformation = new ArrayList<>();
+
+    public String getCreditCardInfo() {
+        return creditCardInfo;
+    }
+
+    public void setCreditCardInfo(String creditCardInfo) {
+        this.creditCardInfo = creditCardInfo;
+    }
+
+    public List<DonationInformation> getDonationInformation() {
+        return donationInformation;
+    }
+
+    public void setDonationInformation(List<DonationInformation> donationInformation) {
+        this.donationInformation = donationInformation;
+    }
+}
Index: src/main/java/it/finki/charitable/entities/Moderator.java
===================================================================
--- src/main/java/it/finki/charitable/entities/Moderator.java	(revision f0d5cb7499a773ecd1cbe9fdfc714a00f3906010)
+++ src/main/java/it/finki/charitable/entities/Moderator.java	(revision f0d5cb7499a773ecd1cbe9fdfc714a00f3906010)
@@ -0,0 +1,8 @@
+package it.finki.charitable.entities;
+
+import javax.persistence.Entity;
+
+@Entity
+public class Moderator extends AppUser{
+    public String moderator;
+}
