def instantiate_components(self, callback=None):
        """
        Instantiates the Components.

        Usage::

            >>> manager = Manager((tests_manager,))
            >>> manager.register_components()
            True
            >>> manager.instantiate_components()
            True
            >>> manager.get_interface("core.tests_component_a")
            <tests_component_a.TestsComponentA object at 0x17a5bb0>

        :param callback: Callback object.
        :type callback: object
        """

        uninstantiated_components = [component
                                     for component in self.list_components()
                                     if not self.instantiate_component(component, callback)]
        if not uninstantiated_components:
            return True
        else:
            raise manager.exceptions.ComponentInstantiationError(
                "{0} | '{1}' Components failed to instantiate!".format(self.__class__.__name__,
                                                                       ", ".join(uninstantiated_components)))