fix logic for observers