Summary
As discussed here there is repeated code (e.g., the oft-repeated debug logging, the logic to skip-if-constructed, and now anonymous set handling) in many of the component construct methods. We should move this code to a base class construct method and have it call a _construct_impl() that is overridden on the derived classes. This would reduce a lot of repeated code and shouldn't impact performance significantly.