public Method getBestMethod(Object receiver, String methodName,
			Class<?>[] parameterTypes) {
		Class<? extends Object> c = receiver.getClass();

		while (c != null) {
			try {
				return c.getDeclaredMethod(methodName, parameterTypes);
			} catch (NoSuchMethodException e) {

			} catch (SecurityException e) {

			}
			c = c.getSuperclass();
		}
		return null;
	}