public static Object add(Object o1, Object o2){
		if (o1 instanceof List){
			List newList = new ArrayList((List)o1);
			if (o2 instanceof List){
				newList.addAll((List)o2);
			} else {
				newList.add(o2);
			}
			return newList;
		}
		if (o1 instanceof String || o2 instanceof String){
			return new StringBuilder().append(o1).append(o2).toString();
		} 
		if (o1 instanceof Integer && o2 instanceof Integer){
			return ((Integer)o1) + ((Integer)o2);
		} else {
			return ((Number)o1).doubleValue() + ((Number)o2).doubleValue();
		}
	}