public function find()
    {
        $config = $this->container['config']->get('rinvex.modulable');

        foreach ($config['paths'] as $path) {
            foreach ($this->container['files']->glob($path.'/*/*/composer.json') as $module) {
                // Exclude core module and any non-cortex modules
                if (mb_strpos($module, 'cortex/foundation') === false && ($json = json_decode($this->container['files']->get($module), true))
                    && in_array($json['type'], $config['types']) && in_array($json['name'], $config['enabled'])) {
                    $json['path'] = dirname(realpath($module));
                    $json['namespace'] = array_first(array_keys(array_pull($json, 'autoload.psr-4')));
                    $json['aggregator'] = $this->container['files']->exists($json['path'].'/src/Providers/AggregateServiceProvider.php')
                        ? $json['namespace'].'Providers\AggregateServiceProvider' : null;

                    $this->modules[$json['name']] = new Module($this->container, $json);
                }
            }
        }

        return $this;
    }