renamed build() to emit() and added support for initializer
implemented emit() for SpecifiedComponentDefinition to return object