private void notifyListeners(String event, Object ... params) {
		
		if ( subs == null ) return;

		Class paramtypes[] = new Class[params.length];
		
		for ( int i = 0; i < params.length; ++i )
			paramtypes[i] = params[i].getClass();

//		Object[] params = {this};

		for (ChannelListener l : subs) {
			try {
				//FIND the method (or exception if not defined)
				Method command = Class.forName("com.coldsteelstudios.irc.client.ChannelListener").getDeclaredMethod(event,paramtypes);
		
				//invoke the method
				command.invoke(l,params);
			} catch (NoSuchMethodException e) {
				System.err.println(e);
				//won't happen.
			} catch (IllegalAccessException e) {
				System.err.println(e);
			} catch (InvocationTargetException e) {
				System.err.println(e);
			} catch (ClassNotFoundException e) {
				System.err.println(e);
			}
		}
	}