more refactoring, found an even cleverer way to instantiate the components

Change-Id: Ia95563ae4ceba68a95bdc2c05e293fda6b8df876