anchor.diff:  
   Subcomponents are used to partition the object graph into subgraphs to encapsulate different parts
   of the application from each other e.g. the business layer from the view layer of an application.
  -Subcomponents inherit and extend the parent component which means that an object bound in a subgraph
  -can access all objects of the parent graph but not vice versa.
  +Subgraphs inherit and extend the parent graph which means that an service bound in a
  +subgraph can access all services of the parent graph but not vice versa.
  +Subgraphs can have a shorter lifetime than their parents and there can be multiple subgraphs with
  +the same parent and from the same subcomponent.
   
   [source,kotlin]
   ----
  
positive.code: CAUTION: When you use `Injection#createGraph` to create a graph you should always call
  `Injection#disposeGraph` to close it instead of directly calling `#dispose` on the resulting graph.
  
  == Injector
  
  It is considered the best way to use constructor based injection to have a consistent state after
  initialisation and proper encapsulation.
  
negative.code: 
  For more details see link:javadoc/winter/io.jentz.winter/-injector/index.html[Injector API docs].
  
  === WinterAware
  
  The `WinterAware` interface marks a class as aware of Winter and gives it access to a variety of
  extension methods to get a dependency graph and to retrieve or inject dependencies.
  