anchor.diff:    the service becomes available only in the `VillainsListComponent` and its sub-component tree.
     It's still a singleton, but it's a singleton that exist solely in the _villain_ domain.
   
  -  You are confident that a hero component can't access it. You've reduced your exposure to error.
  +  Now you know that a hero component can't access it. You've reduced your exposure to error.
   
     ### Scenario: multiple edit sessions
   
     Many applications allow users to work on several open tasks at the same time.
  -  For example, in a tax preparation application, the preparer could be working several tax returns,
  +  For example, in a tax preparation application, the preparer could be working on several tax returns,
     switching from one to the other throughout the day.
   
     This guide demonstrates that scenario with an example in the Tour of Heroes theme.
     Imagine an outer `HeroListComponent` that displays a list of super heroes.
   
  -  To open a hero's tax return, the preparer clicks on a hero name, which opens a component for editing that return. 
  +  To open a hero's tax return, the preparer clicks on a hero name, which opens a component for editing that return.
     Each selected hero tax return opens in its own component and multiple returns can be open at the same time.
   
  -  Each tax return component
  -  * is its own tax return editing session.
  -  * can change a tax return without affecting a return in another component.
  -  * has the ability to save the changes to its tax return or cancel them.
  +  Each tax return component has the following characteristics:
  +  * Is its own tax return editing session.
  +  * Can change a tax return without affecting a return in another component.
  +  * Has the ability to save the changes to its tax return or cancel them.
   
   figure.image-display
     img(src="/resources/images/devguide/dependency-injection/hid-heroes-anim.gif" width="400" alt="Heroes in action")
   
   :marked
  -  One might suppose that the `HeroTaxReturnComponent` has logic to manage and restore changes. 
  -  That would be a pretty easy task for a simple hero tax return. 
  +  One might suppose that the `HeroTaxReturnComponent` has logic to manage and restore changes.
  +  That would be a pretty easy task for a simple hero tax return.
     In the real world, with a rich tax return data model, the change management would be tricky.
     You might delegate that management to a helper service, as this example does.
   
  -  Here is the `HeroTaxReturnService`. 
  +  Here is the `HeroTaxReturnService`.
     It caches a single `HeroTaxReturn`, tracks changes to that return, and can save or restore it.
  -  It also delegates to the application-wide, singleton `HeroService`, which it gets by injection.
  +  It also delegates to the application-wide singleton `HeroService`, which it gets by injection.
   
   +makeExample('src/app/hero-tax-return.service.ts')
   
  
positive.code:   ### Re-providing a service at different levels
  
    You can re-register a provider for a particular dependency token at multiple levels of the injector tree.
    You don't *have* to re-register providers. You shouldn't do so unless you have a good reason. 
    But you *can*.
  
    As the resolution logic works upwards, the first provider encountered wins.
    Thus, a provider in an intermediate injector intercepts a request for a service from something lower in the tree.
    It effectively "reconfigures" and "shadows" a provider at a higher level in the tree.
  
    If you only specify providers at the top level (typically the root `AppModule`), the tree of injectors appears to be flat. 
    All requests bubble up to the root <span if-docs="ts"><code>NgModule</code></span> injector that you configured with the `!{_bootstrapModule}` method.
  
  .l-main-section
  
negative.code:   The component also asks the service to save and restore this tax return.
  
    There'd be big trouble if _this_ service were an application-wide singleton.
    Every component would share the same service instance.
    Each component would overwrite the tax return that belonged to another hero.
    What a mess!
  
  