Rearranging project files.
Deleted all classes and specs.
Added API based on factories and modules.

The concept allows factories to build their dependencies through an entity that knows how to fulfill each dependency. This separation removes the need to nest dependencies within each other manually, making the implementation of each factory substantially simpler.

Modules may be nested within each other, for example in the car manufacturing use case the radio module is nested within the car module, allowing any objects in the car module access to the dependencies defined in the radio module.

Some of the terms need to be more clearly defined and tests need to be written, as in the attempt to save time tests have been removed – mostly due to confusion with the problem in question. Can't write tests for objects you don't yet understand, and time is of the essence for client work.

A module, for example, should not be responsible for actually building the object. This is a cross cutting concern. It should, however, know about _how_ to resolve dependencies. Needs some thought.