private NavigationSoundModule(InternalSoundInterface soundIfc, 
            InternalRouteInterface routeIfc, WorkScheduler scheduler,
            InternalSettingsInterface settingIfc,
            PersistenceLayer persistenceLayer, SoundLayer soundLayer) {
        
        if (soundIfc == null || routeIfc == null || scheduler == null || 
                settingIfc == null || persistenceLayer == null || soundLayer == null) {
            throw new IllegalArgumentException("NavigationSoundModule ctr all parameters must not be null");
        }
        m_soundIfc = soundIfc;
        m_routeIfc = routeIfc;
        m_sheduler = scheduler;
        m_persistanceLayer = persistenceLayer;
        m_soundLayer = soundLayer;
        
        GeneralSettingsInternal settings = settingIfc.getGeneralSettings();
        m_language = settings.getInternalLanguage();
        m_units = settings.getMeasurementSystem();
        m_routeIfc.addSyncNavInfoListener(this);
        
        settingIfc.registerSettingsListener(this);//watch for language, units changes  
    }