public Document login(String username, String password) throws SQLException {
		
		//Init response message
		Document document = DocumentHelper.createDocument();
		Element root = document.addElement(MessageAction.LOGIN.toString());
		
		//Adds the username of the owner
		root.addElement("owner")
		.addAttribute("owner_username",ownerUsername)
		.addAttribute("owner_ID", String.valueOf(ownerID))
		.addAttribute("owner_name", ownerName);
			
		
		//Verify with database and create a connection with user.
		Dbhandle handle = new Dbhandle();
		User dbUser = handle.fetchUser(username);
		
		//Check if the passwords match
		if (!dbUser.getPassword().equals(password)) {
			//Login failed response message
			
			root.addElement("login_response")
			.addAttribute("response", "Failed");
			
			return document;

		}
		
		//Login success! Send the information the user needs
		root.addElement("login_response")
		.addAttribute("response", "Success");
		
		//List of owners personal events
		List<Event> eventList = handle.fetchUserEvents(ownerUsername);
		
		//Get List of users the person follows
		List<User> followedUsers = handle.fetchUsersFollowed(ownerID);
				
		//Get their events
		for (User user : followedUsers) {
			user.setPersonalEvents(handle.fetchUserEvents(user.getUsername()));
		}
		
		//List of all users in the database system
		List<User> allUsers = handle.fetchAllUsers();
		
		//Anything else?
		
		////// RESPONSE //////
				
		//Create the document
		
		//Add all the personal events
		for (Event event : eventList) {
			Meeting meeting = handle.fetchMeetingOfEvent(event.getEvent_ID());
			root.addElement("personal_event")
			.addAttribute("meetingID", String.valueOf(meeting.getMeeting_ID()))
			.addAttribute("meetingName", String.valueOf(meeting.getName()))
			.addAttribute("event_ID", String.valueOf(event.getEvent_ID()))
			.addAttribute("start", event.getStart().toString())
			.addAttribute("end", String.valueOf(event.getEnd().toString()))
			.addAttribute("location", event.getLocation())
			.addAttribute("description", event.getDescription())
			.addAttribute("status", event.getStatus().toString());
		}
		
			//Adds the followed users and their events
			for (User user : followedUsers) {
			root.addElement("followed_user")
			.addAttribute("user_ID", String.valueOf(user.getUserID()))
			.addAttribute("username", user.getUsername())
			.addAttribute("name", user.getName());
			
			
			for (Event event : user.getPersonalEvents()) {
				Meeting meeting = handle.fetchMeetingOfEvent(event.getEvent_ID());
				root.addElement("followed_user_event")
				.addAttribute("event_owner", user.getUsername())
				.addAttribute("meetingID", String.valueOf(meeting.getMeeting_ID()))
				.addAttribute("meetingName", String.valueOf(meeting.getName()))
				.addAttribute("event_ID", String.valueOf(event.getEvent_ID()))
				.addAttribute("start", event.getStart().toString())
				.addAttribute("end", String.valueOf(event.getEnd().toString()))
				.addAttribute("location", event.getLocation())
				.addAttribute("description", event.getDescription())
				.addAttribute("status", event.getStatus().toString());
				
			}
			
		}
			
		for (User user : allUsers) {
			root.addElement("database_user")
			.addAttribute("user_ID", String.valueOf(user.getUserID()))
			.addAttribute("username", user.getUsername())
			.addAttribute("name", user.getName());
		}
		
		
		return document;
	}