public function get($key = null)
    {
        if ($key === null) {
            return $this;
        }
        
        if (!isset($this->modules[$key])) {
            throw new ModuleDoesntExistException($key);
        }
        
        return $this->modules[$key];
    }