diff --git a/App/main.cpp b/App/main.cpp
index 5505eab5b383e3dc356ed7260de1f474bab9edba..0a7aabb5f72ac19ee9c9dca617f6fa4af5c763bd 100644
--- a/App/main.cpp
+++ b/App/main.cpp
@@ -29,9 +29,6 @@
 #include <QtGlobal>
 #include <iostream>
 
-// Global variables
-BA_GUI_API_ std::unique_ptr<Dirs> gDirs;
-
 void custom_terminate_handler()
 {
     try {
diff --git a/GUI/Support/Data/Dirs.cpp b/GUI/Support/Data/Dirs.cpp
index 44eb199b2aa5604cc6f59e1582dc2cd504196e40..bcef548b9ce01f19046a2bb3b851fb5bbd18f87f 100644
--- a/GUI/Support/Data/Dirs.cpp
+++ b/GUI/Support/Data/Dirs.cpp
@@ -28,6 +28,7 @@ const QString S_LASTUSEDIMPORFILTER2D = "LastUsedImportFilter2D";
 
 } // namespace
 
+BA_GUI_API_ std::unique_ptr<Dirs> gDirs;
 
 Dirs::Dirs()
 {
@@ -44,12 +45,9 @@ Dirs::~Dirs()
 void Dirs::readSettings()
 {
     QSettings settings;
-    m_working_directory = QDir::homePath();
     if (settings.childGroups().contains(S_DIRS)) {
         settings.beginGroup(S_DIRS);
 
-        m_working_directory = settings.value(S_DEFAULTPROJECTPATH).toString();
-
         if (settings.contains(S_LASTUSEDIMPORTDIR))
             m_import_directory = settings.value(S_LASTUSEDIMPORTDIR, QString()).toString();
 
@@ -66,7 +64,6 @@ void Dirs::writeSettings()
 {
     QSettings settings;
     settings.beginGroup(S_DIRS);
-    settings.setValue(S_DEFAULTPROJECTPATH, m_working_directory);
 
     if (!m_import_directory.isEmpty())
         settings.setValue(S_LASTUSEDIMPORTDIR, m_import_directory);
@@ -76,6 +73,21 @@ void Dirs::writeSettings()
     settings.endGroup();
 }
 
+//! Returns directory name which was used by the user to import files.
+
+QString Dirs::userImportDir() const
+{
+    /*
+    if (m_import_directory.isEmpty()) {
+        if (gDoc)
+            return gDoc->userExportDir();
+        return "";
+    }
+    */
+    return m_import_directory;
+} //! Sets user import directory in system settings.
+
+
 void Dirs::setImportDir(const QString& dirname)
 {
     m_import_directory = dirname;
diff --git a/GUI/Support/Data/Dirs.h b/GUI/Support/Data/Dirs.h
index 884f11c2f90dedca2118ae6210d55449121c93e5..fa03176c1ca6d86c753cef1171deb24088fbd214 100644
--- a/GUI/Support/Data/Dirs.h
+++ b/GUI/Support/Data/Dirs.h
@@ -25,11 +25,10 @@ public:
     Dirs();
     ~Dirs();
 
-    static Dirs* instance();
-
-
+    QString userImportDir() const;
     QString recentlyUsedImportFilter1D() const { return m_import_filter1D; }
     QString recentlyUsedImportFilter2D() const { return m_import_filter2D; }
+
     void setImportDir(const QString& dirname);
     void setImportDirFromFilePath(const QString& filePath);
     void setRecentlyUsedImportFilter1D(const QString& filter);
@@ -39,11 +38,6 @@ private:
     void readSettings();
     void writeSettings();
 
-    QString workingDirectory() { return m_working_directory; }
-
-    //!< Name of directory where project directory was created.
-    QString m_working_directory;
-
     //!< Name of directory from there user prefer to import files
     QString m_import_directory;
 
diff --git a/GUI/View/Loader/DataLoader.cpp b/GUI/View/Loader/DataLoader.cpp
index 95c64abb6806148028cea58bf513e7c3262954c3..146e7c0f1ccf0baac82492d471174b3926ea9dc0 100644
--- a/GUI/View/Loader/DataLoader.cpp
+++ b/GUI/View/Loader/DataLoader.cpp
@@ -19,6 +19,7 @@
 #include "Device/IO/ZipUtil.h"
 #include "GUI/Model/Data/DataItem.h"
 #include "GUI/Model/Device/DatafileItem.h"
+#include "GUI/Support/Data/Dirs.h"
 #include "GUI/View/Info/MessageBox.h"
 #include "GUI/View/Layout/ApplicationSettings.h"
 #include "GUI/View/Loader/ImportDialogs.h"
@@ -64,8 +65,8 @@ std::vector<DatafileItem*> RW::importData1D()
 
     static const QString filters = ::join_filterkeys(filters1D, ";;");
 
-    QString selectedFilter = ProjectManager::instance()->recentlyUsedImportFilter1D();
-    const QString dirname = ProjectManager::instance()->userImportDir();
+    QString selectedFilter = gDirs->recentlyUsedImportFilter1D();
+    const QString dirname = gDirs->userImportDir();
 
     const QStringList fnames = QFileDialog::getOpenFileNames(
         Q_NULLPTR, "Open Intensity Files", dirname, filters, &selectedFilter,
@@ -74,8 +75,8 @@ std::vector<DatafileItem*> RW::importData1D()
     if (fnames.isEmpty())
         return {};
 
-    ProjectManager::instance()->setImportDirFromFilePath(fnames[0]);
-    ProjectManager::instance()->setRecentlyUsedImportFilter1D(selectedFilter);
+    gDirs->setImportDirFromFilePath(fnames[0]);
+    gDirs->setRecentlyUsedImportFilter1D(selectedFilter);
 
     const IO::Filetype1D global_ftype = ::filterkey2type(filters1D, selectedFilter);
 
@@ -125,8 +126,8 @@ std::vector<DatafileItem*> RW::importData2D()
 
     static const QString filters = ::join_filterkeys(filters2D, ";;");
 
-    QString selectedFilter = ProjectManager::instance()->recentlyUsedImportFilter2D();
-    const QString dirname = ProjectManager::instance()->userImportDir();
+    QString selectedFilter = gDirs->recentlyUsedImportFilter2D();
+    const QString dirname = gDirs->userImportDir();
 
     const QStringList fnames = QFileDialog::getOpenFileNames(
         Q_NULLPTR, "Open Intensity Files", dirname, filters, &selectedFilter,
@@ -135,8 +136,8 @@ std::vector<DatafileItem*> RW::importData2D()
     if (fnames.isEmpty())
         return {};
 
-    ProjectManager::instance()->setImportDirFromFilePath(fnames[0]);
-    ProjectManager::instance()->setRecentlyUsedImportFilter2D(selectedFilter);
+    gDirs->setImportDirFromFilePath(fnames[0]);
+    gDirs->setRecentlyUsedImportFilter2D(selectedFilter);
 
     const IO::Filetype2D global_ftype = ::filterkey2type(filters2D, selectedFilter);
 
diff --git a/GUI/View/Manager/ProjectManager.cpp b/GUI/View/Manager/ProjectManager.cpp
index 3e4506c2573ba6cc966afed292e649ce901cb940..eef6eec561c5d31b861e37bb1a3f5a8bb0b3e8fb 100644
--- a/GUI/View/Manager/ProjectManager.cpp
+++ b/GUI/View/Manager/ProjectManager.cpp
@@ -37,8 +37,6 @@ const QString S_AUTOSAVE = "EnableAutosave";
 const QString S_DEFAULTPROJECTPATH = "DefaultProjectPath";
 const QString S_RECENTPROJECTS = "RecentProjects";
 const QString S_LASTUSEDIMPORTDIR = "LastUsedImportDir";
-const QString S_LASTUSEDIMPORFILTER1D = "LastUsedImportFilter1D";
-const QString S_LASTUSEDIMPORFILTER2D = "LastUsedImportFilter2D";
 
 } // namespace
 
@@ -73,18 +71,13 @@ void ProjectManager::readSettings()
     if (settings.childGroups().contains(S_PROJECTMANAGER)) {
         settings.beginGroup(S_PROJECTMANAGER);
 
+        m_working_directory = settings.value(S_DEFAULTPROJECTPATH).toString();
+
         if (!settings.contains(S_AUTOSAVE))
             settings.setValue(S_AUTOSAVE, true);
 
-        m_working_directory = settings.value(S_DEFAULTPROJECTPATH).toString();
         m_recent_projects = settings.value(S_RECENTPROJECTS).toStringList();
 
-        if (settings.contains(S_LASTUSEDIMPORTDIR))
-            m_import_directory = settings.value(S_LASTUSEDIMPORTDIR, QString()).toString();
-
-        m_import_filter1D = settings.value(S_LASTUSEDIMPORFILTER1D, m_import_filter1D).toString();
-        m_import_filter2D = settings.value(S_LASTUSEDIMPORFILTER2D, m_import_filter2D).toString();
-
         setAutosaveEnabled(settings.value(S_AUTOSAVE).toBool());
 
         settings.endGroup();
@@ -100,11 +93,6 @@ void ProjectManager::writeSettings()
     settings.setValue(S_DEFAULTPROJECTPATH, m_working_directory);
     settings.setValue(S_RECENTPROJECTS, m_recent_projects);
 
-    if (!m_import_directory.isEmpty())
-        settings.setValue(S_LASTUSEDIMPORTDIR, m_import_directory);
-    settings.setValue(S_LASTUSEDIMPORFILTER1D, m_import_filter1D);
-    settings.setValue(S_LASTUSEDIMPORFILTER2D, m_import_filter2D);
-
     settings.endGroup();
 }
 
@@ -129,40 +117,6 @@ QString ProjectManager::projectDir() const
     return "";
 }
 
-//! Returns directory name which was used by the user to import files.
-
-QString ProjectManager::userImportDir() const
-{
-    if (m_import_directory.isEmpty()) {
-        if (gDoc)
-            return gDoc->userExportDir();
-        return "";
-    }
-    return m_import_directory;
-} //! Sets user import directory in system settings.
-
-void ProjectManager::setImportDir(const QString& dirname)
-{
-    m_import_directory = dirname;
-}
-
-//! Sets user import directory in system settings.
-
-void ProjectManager::setImportDirFromFilePath(const QString& filePath)
-{
-    m_import_directory = QFileInfo(filePath).absolutePath();
-}
-
-void ProjectManager::setRecentlyUsedImportFilter1D(const QString& filter)
-{
-    m_import_filter1D = filter;
-}
-
-void ProjectManager::setRecentlyUsedImportFilter2D(const QString& filter)
-{
-    m_import_filter2D = filter;
-}
-
 bool ProjectManager::isAutosaveEnabled() const
 {
     return static_cast<bool>(m_autosave);
@@ -290,7 +244,7 @@ void ProjectManager::openProject(QString projectPullPath)
     if (projectPullPath.isEmpty()) {
         const QString ext = QString(GUI::Util::Project::projectFileExtension);
         projectPullPath = QFileDialog::getOpenFileName(
-            GUI::Global::mainWindow, "Open project file", workingDirectory(),
+            GUI::Global::mainWindow, "Open project file", m_working_directory,
             "BornAgain project Files (*" + ext + ")", nullptr,
             appSettings->useNativeFileDialog() ? QFileDialog::Options()
                                                : QFileDialog::DontUseNativeDialog);
@@ -369,7 +323,7 @@ ProjectDocument::ReadResult ProjectManager::loadProject(const QString& fullPathA
 
 QString ProjectManager::acquireProjectPullPath()
 {
-    NewProjectDialog dialog(GUI::Global::mainWindow, workingDirectory(), untitledProjectName());
+    NewProjectDialog dialog(GUI::Global::mainWindow, m_working_directory, untitledProjectName());
 
     if (dialog.exec() != QDialog::Accepted)
         return "";
@@ -399,11 +353,11 @@ void ProjectManager::addToRecentProjects()
 QString ProjectManager::untitledProjectName()
 {
     QString result = "Untitled";
-    QDir projectDir = workingDirectory() + "/" + result;
+    QDir projectDir = m_working_directory + "/" + result;
     if (projectDir.exists()) {
         for (size_t i = 1; i < 99; ++i) {
             result = QString("Untitled") + QString::number(i);
-            projectDir.setPath(workingDirectory() + "/" + result);
+            projectDir.setPath(m_working_directory + "/" + result);
             if (!projectDir.exists())
                 break;
         }
diff --git a/GUI/View/Manager/ProjectManager.h b/GUI/View/Manager/ProjectManager.h
index 4857dc137df90567d899338b414eb232ba2b932b..38a2a540c33cdf82795fdcba1e68d6def3c69c4e 100644
--- a/GUI/View/Manager/ProjectManager.h
+++ b/GUI/View/Manager/ProjectManager.h
@@ -34,13 +34,6 @@ public:
 
     QStringList recentProjects();
     QString projectDir() const;
-    QString userImportDir() const;
-    QString recentlyUsedImportFilter1D() const { return m_import_filter1D; }
-    QString recentlyUsedImportFilter2D() const { return m_import_filter2D; }
-    void setImportDir(const QString& dirname);
-    void setImportDirFromFilePath(const QString& filePath);
-    void setRecentlyUsedImportFilter1D(const QString& filter);
-    void setRecentlyUsedImportFilter2D(const QString& filter);
 
     bool isAutosaveEnabled() const;
     AutosaveController* autosaveController() const;
@@ -68,25 +61,13 @@ private:
     QString acquireProjectPullPath();
     void addToRecentProjects();
 
-    QString workingDirectory() { return m_working_directory; }
     QString untitledProjectName();
 
     void riseProjectLoadFailedDialog(const MessageService& messageService);
     void riseProjectLoadProblemDialog(const MessageService& messageService);
     bool restoreProjectDialog(const QString& projectFileName, QString autosaveName);
 
-    //!< Name of directory where project directory was created.
     QString m_working_directory;
-
-    //!< Name of directory from there user prefer to import files
-    QString m_import_directory;
-
-    //! Recently used import filter for 1D files
-    QString m_import_filter1D;
-
-    //! Recently used import filter for 2D files
-    QString m_import_filter2D;
-
     QStringList m_recent_projects;
     std::unique_ptr<AutosaveController> m_autosave;
 
diff --git a/GUI/View/Manager/PyImportAssistant.cpp b/GUI/View/Manager/PyImportAssistant.cpp
index bb321792d3a86b68c2649400503365e3543aaa63..05144ce83b6bbf080ee7467df9fd8d3a3b5dcc3a 100644
--- a/GUI/View/Manager/PyImportAssistant.cpp
+++ b/GUI/View/Manager/PyImportAssistant.cpp
@@ -21,13 +21,13 @@
 #include "GUI/Model/FromCore/ItemizeSample.h"
 #include "GUI/Model/FromCore/ItemizeSimulation.h"
 #include "GUI/Model/Project/ProjectUtil.h"
+#include "GUI/Support/Data/Dirs.h"
 #include "GUI/Support/Util/Path.h"
 #include "GUI/Support/Util/String.h"
 #include "GUI/View/Info/ComboSelectorDialog.h"
 #include "GUI/View/Info/DetailedMessageBox.h"
 #include "GUI/View/Info/MessageBox.h"
 #include "GUI/View/Layout/ApplicationSettings.h"
-#include "GUI/View/Manager/ProjectManager.h"
 #include "GUI/View/Tool/Globals.h"
 #include "PyCore/Embed/PyInterpreter.h"     // listOfFunctions
 #include "PyCore/Sample/ImportMultiLayer.h" // createMultiLayerFromPython
@@ -69,7 +69,7 @@ QString getCandidate(const QStringList& funcNames)
 
 QString fnameToOpen()
 {
-    QString dirname = ProjectManager::instance()->userImportDir();
+    QString dirname = gDirs->userImportDir();
 
     QString result = QFileDialog::getOpenFileName(
         GUI::Global::mainWindow, "Open python script", dirname, "Python scripts (*.py)", nullptr,
@@ -77,7 +77,7 @@ QString fnameToOpen()
                                            : QFileDialog::DontUseNativeDialog);
 
     if (!result.isEmpty())
-        ProjectManager::instance()->setImportDir(GUI::Path::fileDir(result));
+        gDirs->setImportDir(GUI::Path::fileDir(result));
 
     return result;
 }