renamed HasComponentsRegistered to HasComponents to avoid confusion