minor refactoring
renamed emitter() to getBaseValue()
extracted ComponentAssemblyStrategy from SimpleComponentAssemblyStrategy