require observable to communicate updates