private LuaValue invokeBestMethod(Object instance, Varargs args) {
			JavaMethod best = null;
			int score = CoerceLuaToJava.SCORE_UNCOERCIBLE;
			for (int i = 0; i < methods.length; i++) {
				int s = methods[i].score(args);
				if (s < score) {
					score = s;
					best = methods[i];
					if (score == 0)
						break;
				}
			}

			// any match? 
			if (best == null)
				LuaValue.error("no coercible public method");

			// invoke it
			return best.invokeMethod(instance, args);
		}