public Message fetchMessage(int id)
	{
		initConnection();
		
		String preparedString = null;
		PreparedStatement preparedQuery = null;
		Message message = new Message();
		try 
		{
			//Prepare Statement
			preparedString = "SELECT * FROM messages " +
							 "INNER JOIN users ON users.email = messages.user " +
							 "WHERE id = ?;";
			
			preparedQuery = (PreparedStatement) connection.prepareStatement(preparedString);
			preparedQuery.setInt(1, id);
			
				//TODO: Remove debug
				System.out.println("Get single message with SQL:  [" + preparedQuery.toString() + "] ");
			
			//Execute Statement
			ResultSet resultSet = preparedQuery.executeQuery();  	
			
			//Extract message into a Bean
			while (resultSet.next())
			{
				message.setId(resultSet.getInt("id"));
				message.setTimeStamp(resultSet.getTimestamp("timestamp"));
				message.setContent(resultSet.getString("content"));
				
				//Get author as User object
				User author = new User();
				author.setEmail(resultSet.getString("user"));
				author.setFirstName(resultSet.getString("firstname"));
				author.setLastName(resultSet.getString("lastname"));
				
				message.setAuthor(author);
				
			}
			
		} 
		catch (SQLException e) 
		{
			e.printStackTrace();
		}
		finally
    	{
    		try
    		{
    			//Finally close stuff to return connection to pool for reuse
        		preparedQuery.close();
        		connection.close();
    		}
    		catch (SQLException sqle)
    		{
    			sqle.printStackTrace();
    		}

    	}
		return message;		
	}