anchor.diff:    There are a bunch of things in our wikipedia demo that we could do better. This is a perfect opportunity to show off some nifty
     `Observable` tricks that can make server communication much simpler and more fun.
     
  -  ## More fun with Observables
  +  <a id="more-observables"></a>
  +  ### More fun with Observables
   
     If you ever wrote a search-as-you-type control yourself before, you are probably aware of some typical corner cases that arise with this task.
     
  
positive.code: 
  include ../../../../_includes/_util-fns
  :marked
    Whew! We already learned quite a lot about how Angular 2 works. One thing that we haven't looked into yet is how to
    communicate with a backend. Most applications will come to a point where they either want to read from or write to
    a remote location. Angular 2 has excellent support for such scenarios so let's dive right into it.
    
    Try the [live example](/resources/live-examples/server-communication/ts/plnkr.html).
  .l-main-section
  
negative.code:   When the data arrive it pushes the new hero object into its `heroes` array for presentation to the user.
  +makeExample('server-communication/ts/app/toh/hero-list.component.ts', 'addHero', 'app/toh/hero-list.component.ts (addHero)')(format=".")
  
  <a id="promises"></a>
  :marked
    ## Fall back to Promises
    
  