Some time ago I read the book Practical Object-Oriented Design in Ruby by Sandi Metz, while an excellent book there is one thing that bothered me while reading it. That is the pattern for dependecy injection proposed on the book. It goes something like this: In this example the class Car takes an engine dependecy, each time you want to create a car you have to pass an engine to it. This can easily