public void add(DimensionValueCollection o, Long TimeStamp, InfoStored type) {
		if(size() == CAPACITY && !containsKey(TimeStamp))
		{
			Iterator <Long> i = keySet().iterator();
			Long oldest = i.next();
			while(i.hasNext())
			{
				Long check = i.next();
				if(check < oldest)
					oldest = check;
			}
			remove(oldest);
		}
		EnumMap <InfoStored, DimensionValueCollection> e;
		if(!containsKey(TimeStamp))
			e = new EnumMap <InfoStored,DimensionValueCollection> (InfoStored.class);
		else
			e = super.get((Object)TimeStamp);
		switch(type)
		{
		case PERFORMED_ACTION:
			e.put(InfoStored.PERFORMED_ACTION, o);
			break;
		case CURRENT_STATE:
			e.put(InfoStored.CURRENT_STATE, o);
			break;
		case NEW_STATE:
			e.put(InfoStored.CURRENT_STATE, o);
		}
		if(e.size() > 0)
			put(TimeStamp, e);
	}