observes add pull model