Added external listener support