public List<Person> recommendations(long id) {
//		List<Suggestion> listSuggests = new ArrayList<Suggestion>();
		List<Person> listSuggests = new ArrayList<Person>();
		List<Person> listSuggestsTemp = new ArrayList<Person>();
		List<Person> friends = listFriends(id);
		Map<Long, Integer> suggests = new HashMap<Long, Integer>();
		Vertex person = loadBlockedVertex(id);
		Person fSuggest = null;
		
		Person personSB = null;
		for (Vertex suggest : person.getVertices(Direction.OUT, "suggested")) {
			personSB = new Person((String)suggest.getProperty("name"), "", (Long)suggest.getProperty("phonenumber"), (String)suggest.getProperty("gcmkey"));
			listSuggestsTemp.add(personSB);
		}
		
		for (Vertex friend : person.getVertices(Direction.OUT, "knows")) {
			for (Vertex friendSuggest : friend.getVertices(Direction.OUT, "knows")) {
				fSuggest = new Person((String)friendSuggest.getProperty("name"), "", (Long)friendSuggest.getProperty("phonenumber"), (String)friendSuggest.getProperty("gcmkey"));
				if (!friends.contains(fSuggest)) {
					if (suggests.get(fSuggest.getId()) == null) {
						if (((Long)person.getProperty("phonenumber")).equals(fSuggest.getId()) || listSuggestsTemp.contains(fSuggest)) {
							suggests.put(fSuggest.getId(), 1);
							continue;
						}
						suggests.put(fSuggest.getId(), 1);
						person.addEdge("suggested", friendSuggest);
					} else {
						Integer newSuggest = suggests.get(fSuggest.getId()) + 1;
						suggests.put(fSuggest.getId(), newSuggest);
					}
				}
			}
		}
		
		bobbyGraph.commit();
		
		Person personS = null;
		Suggestion suggested = null;
		for (Vertex suggest : person.getVertices(Direction.OUT, "suggested")) {
			personS = new Person((String)suggest.getProperty("name"), "", (Long)suggest.getProperty("phonenumber"), (String)suggest.getProperty("gcmkey"));
//			suggested = new Suggestion(personS, suggests.get(personS.getId()));
			listSuggests.add(personS);
		}
		
		return listSuggests;
	}