updated listener and util