private IVPValue createCopy(IVPValue value, Context c, HashMap map, DataFactory factory) {
		IVPValue copy = null;
		if (value instanceof IVPNumber) {
			copy = factory.createIVPNumber();
			if(value.getValueType().equals(IVPValue.INTEGER_TYPE)){
				c.addInt(copy.getUniqueID(), c.getInt(value.getUniqueID()));
			}else{
				c.addDouble(copy.getUniqueID(), c.getDouble(value.getUniqueID()));
			}
		} else if (value instanceof IVPBoolean) {
			copy = factory.createIVPNumber();
			c.addBoolean(copy.getUniqueID(), c.getBoolean(value.getUniqueID()));
		} else {
			copy = factory.createIVPString();
			c.addString(copy.getUniqueID(), new String(c.getString(value.getUniqueID())));
		}
		copy.setValueType(value.getValueType());
		map.put(copy.getUniqueID(), copy);

		return copy;
	}