I would not pass the container in the constructor but as argument to the ``assemble`` method. All protected methods of the class are written in a stateless way: they can be called several times with different containers. But you are making the Assembler itself stateful just because of passing the container to the constructor rather than the ``assemble`` method