better listener support