Changed observers to require observer factories