tighten up property observers