--- a
+++ b/recommendation-engine/src/main/java/eu/alfred/personalization_manager/model/UserProfile.java
@@ -0,0 +1,249 @@
+package eu.alfred.personalization_manager.model;
+
+import java.util.Date;
+ 
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.format.annotation.DateTimeFormat.ISO;
+
+ 
+public class UserProfile {
+	
+	private String id;
+	private String firstName;
+	private String middleName;
+	private String lastName;
+	private String alfredUserName;
+	private String prefferedName;
+	private Gender gender;
+	private Date dateOfBirth;
+	private String phone;
+	private String mobilePhone;
+	private String email;
+	private Address residentialAddress;
+	private Address postalAddress;
+	private String citizenship;
+	private String nationality;
+	private Language language;
+	private String socialSecurityNumber;
+	private MaritalStatus maritalStatus;
+	private EducationLevel educationLevel;
+	private EmploymentStatus employmentStatus; 
+	private String healthInsurance;
+	private String profession;
+	private Date anniversaryDate;
+	private Contact nextOfKin;
+	private MyersBriggsTypeIndicator myersBriggsIndicator;
+	private String[] selfDescrPersonalityChar;
+	private String[] interests;
+	private String[] culturalOrFamilyNeeds;
+	private String[] socialMediaProfiles; 
+	private Date alfedAppInstalationDate; 
+	private Date lastUpdated;
+	private int ageInYears;
+
+	public MobilityLevel getMobilityLevel() {return mobilityLevel;}
+
+	public void setMobilityLevel(MobilityLevel mobilityLevel) {
+		this.mobilityLevel = mobilityLevel;
+	}
+
+	private MobilityLevel mobilityLevel;
+	
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) { 
+		this.id = id;
+	}
+	public String getFirstName() {
+		return firstName;
+	}
+	public void setFirstName(String firstName) {
+		this.firstName = firstName;
+	}
+	public String getMiddleName() {
+		return middleName;
+	}
+	public void setMiddleName(String middleName) {
+		this.middleName = middleName;
+	}
+	public String getLastName() {
+		return lastName;
+	}
+	public void setLastName(String lastName) {
+		this.lastName = lastName;
+	}
+	public String getPrefferedName() {
+		return prefferedName;
+	}
+	public void setPrefferedName(String prefferedName) {
+		this.prefferedName = prefferedName;
+	}
+	public Gender getGender() {
+		return gender;
+	}
+	public void setGender(Gender gender) {
+		this.gender = gender;
+	}
+	public Date getDateOfBirth() {
+		return dateOfBirth;
+	}
+	public void setDateOfBirth(Date dateOfBirth) {
+		this.dateOfBirth = dateOfBirth;
+	}
+	public String getPhone() {
+		return phone;
+	}
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+	public String getMobilePhone() {
+		return mobilePhone;
+	}
+	public void setMobilePhone(String mobilePhone) {
+		this.mobilePhone = mobilePhone;
+	}
+	public String getEmail() {
+		return email;
+	}
+	public void setEmail(String email) {
+		this.email = email;
+	}
+	public Address getResidentialAddress() {
+		return residentialAddress;
+	}
+	public void setResidentialAddress(Address residentialAddress) {
+		this.residentialAddress = residentialAddress;
+	}
+	public Address getPostalAddress() {
+		return postalAddress;
+	}
+	public void setPostalAddress(Address postalAddress) {
+		this.postalAddress = postalAddress;
+	}
+	public String getCitizenship() {
+		return citizenship;
+	}
+	public void setCitizenship(String citizenship) {
+		this.citizenship = citizenship;
+	}
+	public String getNationality() {
+		return nationality;
+	}
+	public void setNationality(String nationality) {
+		this.nationality = nationality;
+	}
+	public Language getLanguage() {
+		return language;
+	}
+	public void setLanguage(Language language) {
+		this.language = language;
+	}
+	public String getSocialSecurityNumber() {
+		return socialSecurityNumber;
+	}
+	public void setSocialSecurityNumber(String socialSecurityNumber) {
+		this.socialSecurityNumber = socialSecurityNumber;
+	}
+	public MaritalStatus getMaritalStatus() {
+		return maritalStatus;
+	}
+	public void setMaritalStatus(MaritalStatus maritalStatus) {
+		this.maritalStatus = maritalStatus;
+	}
+	public EducationLevel getEducationLevel() {
+		return educationLevel;
+	}
+	public void setEducationLevel(EducationLevel educationLevel) {
+		this.educationLevel = educationLevel;
+	}
+	public EmploymentStatus getEmploymentStatus() {
+		return employmentStatus;
+	}
+	public void setEmploymentStatus(EmploymentStatus employmentStatus) {
+		this.employmentStatus = employmentStatus;
+	}
+	public String getHealthInsurance() {
+		return healthInsurance;
+	}
+	public void setHealthInsurance(String healthInsurance) {
+		this.healthInsurance = healthInsurance;
+	}
+	public String getProfession() {
+		return profession;
+	}
+	public void setProfession(String profession) {
+		this.profession = profession;
+	}
+	public Date getAnniversaryDate() {
+		return anniversaryDate;
+	}
+	public void setAnniversaryDate(Date anniversaryDate) {
+		this.anniversaryDate = anniversaryDate;
+	}
+	public Contact getNextOfKin() {
+		return nextOfKin;
+	}
+	public void setNextOfKin(Contact nextOfKin) {
+		this.nextOfKin = nextOfKin;
+	}
+	public MyersBriggsTypeIndicator getMyersBriggsIndicator() {
+		return myersBriggsIndicator;
+	}
+	public void setMyersBriggsIndicator(
+			MyersBriggsTypeIndicator myersBriggsIndicator) {
+		this.myersBriggsIndicator = myersBriggsIndicator;
+	}
+	public String[] getSelfDescrPersonalityChar() {
+		return selfDescrPersonalityChar;
+	}
+	public void setSelfDescrPersonalityChar(String[] selfDescrPersonalityChar) {
+		this.selfDescrPersonalityChar = selfDescrPersonalityChar;
+	}
+	public String[] getInterests() {
+		return interests;
+	}
+	public void setInterests(String[] interests) {
+		this.interests = interests;
+	}
+	public String[] getCulturalOrFamilyNeeds() {
+		return culturalOrFamilyNeeds;
+	}
+	public void setCulturalOrFamilyNeeds(String[] culturalOrFamilyNeeds) {
+		this.culturalOrFamilyNeeds = culturalOrFamilyNeeds;
+	}
+	public String[] getSocialMediaProfiles() {
+		return socialMediaProfiles;
+	}
+	public void setSocialMediaProfiles(String[] socialMediaProfiles) {
+		this.socialMediaProfiles = socialMediaProfiles;
+	}
+	@DateTimeFormat(iso=ISO.DATE)
+	public Date getAlfedAppInstalationDate() { 
+		return alfedAppInstalationDate;
+	}
+	public void setAlfedAppInstalationDate(Date alfedAppInstalationDate) {
+		this.alfedAppInstalationDate = alfedAppInstalationDate;
+	}	
+	public String getAlfredUserName() {
+		return alfredUserName;
+	}
+	public void setAlfredUserName(String alfredUserName) {
+		this.alfredUserName = alfredUserName;
+	}
+	public Date getLastUpdated() {
+		return lastUpdated;
+	}
+	public void setLastUpdated(Date lastUpdated) {
+		this.lastUpdated = lastUpdated;
+	}
+	
+	@Override
+	public String toString() {
+		return "id: " + getId() + ", first-name: " + getFirstName() + ", last-name: " + getLastName() + ", date of birth: " + getDateOfBirth() + "...";
+	}
+
+	public int getAgeInYears() { return ageInYears; }
+
+	public void setAgeInYears(int ageInYears) { this.ageInYears = ageInYears; }
+}