 these issues. Instead of
 the programmer calling a constructor or factory, a tool called a
 <i>dependency injector</i> passes dependencies to objects:

 <pre>   class Stopwatch {
     final TimeSource timeSource;
     <b>@Inject Stopwatch(TimeSource timeSource)</b> {
       this.timeSource = timeSource;
     }
     void start() { ... }
     long stop() { ... }
   }</pre>

 <p>The injector further passes dependencies to other dependencies until it
 constructs the entire object graph. For example, suppose th