public Config(InputStream aStream)
    {
        // create resource Loader
        m_ResourceLoader = new DefaultResourceLoader();

        if (_groupTable == null)
        {
            _groupTable = new Hashtable<String, Hashtable<Object, Object>>();
        }

        if (_exports == null)
        {
            _exports = new Vector<Object>();
        }

        if (_noReloading == null)
        {
            _noReloading = new Vector<Object>();
        }

        if (_defines == null)
        {
            _defines = new Hashtable<Object, Object>();
        }

        if (_properties == null)
        {
            _properties = new Properties();
        }

        // no exit by default (do nothing)
        boolean exitOnInitFailed = System.getProperty(
                _FQCN + "exitOnInitFailed", "false").equals("true");

        try
        {
            _loadConfig(false, aStream);

            // activate survey only if we have a file (not a classpath resource)
            if ((_survey == null) && (_filePath != null))
            {
                _survey = new ConfigurationMonitor(_filePath);
                _survey.start();
            }

        }
        catch (Exception e)
        {
            if (exitOnInitFailed)
            {
                System.exit(0);
            }

        }

    }