* @param text messages to be added about the meeting.
	 * @throws IllegalArgumentException if the meeting does not exist
	 * @throws IllegalStateException if the meeting is set for a date in the future
	 * @throws NullPointerException if the notes are null
	 */
	public void addMeetingNotes(int id, String text)  throws IllegalArgumentException, IllegalStateException, NullPointerException
	{
		if(text == null)
			throw new NullPointerException("notes supplied are null");
		Meeting fm = getMeeting(id);
		if(fm == null)
			throw new IllegalArgumentException("there is no meeting with this ID");
		
		now.setTime(new Date());
		if(now.before(fm.getDate()))
			throw new IllegalStateException("can't add notes to a meeting in the future");
		if(fm instanceof FutureMeeting)
		{
			PastMeetingImpl pm = new PastMeetingImpl((FutureMeetingImpl)fm, text, id);
			
			// and add the new past meeting to the meeting list
			// with the same id, replacing the future meeting.
			meetingList.set(id, pm);
			
			// replace the future meeting with the new past meeting 
			// in the chronological sorted set
			meetingSet.remove(fm);
			meetingSet.add(pm);
		}
		else if(fm instanceof PastMeeting)
		{
			// just add the notes to the existing object
			((PastMeetingImpl)fm).addNotes(text);
		}
	}