@mcc it finds objects by a build time annotation processor which goes through constructors annotated with @inject and classes annotated with @module which contain definitions of how to initialise objects and Dagger combines that to verify at compile time that every object that is marked to be injected can be constructed by Dagger