protected function prepare($action, Composer $composer, IOInterface $io, $pluginName)
    {
        $this->composer = $composer;
        $this->io = $io;
        
        if ($this->isPluginExcluded($action, $pluginName)) {
            return $this->excluded($action, $pluginName) && false;
        }
        
        $plugin = $this->getPlugin($pluginName);
        
        if (! $plugin) {
            return $this->failed($action, $pluginName) && false;
        }
        
        $this->executing($action, $pluginName);
        
        return $plugin;
    }