added named listener support