optimize the listener in adapter