public static Object getProperty(Object o, String field) {
		if (o == null) return null;
		if (Functions.isEmpty(field)) return null;
		// uses reflection
		Object retObj;
		Class<?> c;
		Field f;
		try {
			c = o.getClass(); 
			f = getField(c,field);
			if (f == null) return null;
			f.setAccessible(true);
			retObj = (f.get(o));
		} catch (Throwable e) {
			return null;
		}
		return retObj;
	}