added listenCol and on() and fire()