private void add(Method method)
	{
		// Check for annotation
		ICallbackEnum message = getMethodMessage(method);
		if(message == null) return;
		
		// Check Parameters
		Class<?>[] params = method.getParameterTypes();
		Class<?> metaClass = message.getMetadataClass();
		if(metaClass == null) metaClass = IJeTTSession.class;
		if(params.length != 1 || params[0] != metaClass)
		{
			// Warn and return
			if(JeTT.isDebugging())
				System.err.format("WARNING: Ignoring method '%s.%s' marked as %s callback; must have parameters: %s\n",
						method.getDeclaringClass(),
						method.getName(),
						message.name(),
						metaClass.getCanonicalName()
						);
			return;
		}
		
		// Bind
		MethodParamBinding binding = new MethodParamBinding(method, message);
		
		// Check for existence
		if(!this.methods.containsKey(message))
			// Add
			this.methods.put(binding, method);
	}