refactored and created support for assembling Components