refactoring, gave up on immutability of components to improve performance and code simplicity

Change-Id: Ia05f10b5b707ab58fa73573089294b320afb6c1b