So what's dependency injection?