public static function fromFQDN($fqdn, $subCommand = null)
    {
        if (function_exists($fqdn)) {
            return self::fromFunction($fqdn);
        }
        if (class_exists($fqdn) && is_subclass_of($fqdn, 'ConsoleKit\Command')) {
            return self::fromCommandClass($fqdn, $subCommand);
        }
        throw new ConsoleException("'$fqdn' is not a valid ConsoleKit FQDN");
    }