observer dependency