Add documentation on dependency injection and architecture