parts of the application, for example, CLI, background jobs. • It’s easy to compose/chain with other pieces of an application. Private methods can be separated and moved to another class. • Now, we need to use another mailer, or fetch data from other source everything we need is to pass another object as a dependency.