def plugins(self):
        """Lazily load iotile plugins only on demand.

        This is a slow operation on computers with a slow FS and is rarely
        accessed information, so only compute it when it is actually asked
        for.
        """

        if self._plugins is None:
            self._plugins = {}

            for _, plugin in self.load_extensions('iotile.plugin'):
                links = plugin()
                for name, value in links:
                    self._plugins[name] = value

        return self._plugins