code: public static Reference getInstance(Object o, String key) {
  	if (o instanceof Reference) {
  	    return new ReferenceReference((Reference) o, key);
  	}
  	Collection coll = Caster.toCollection(o, null);
  	if (coll != null) return new VariableReference(coll, key);
  	return new NativeReference(o, key);
      }
docs: returns a Reference Instance
  
  @param o
  @param key
  @return Reference Instance