diff --git a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
index 3e00ededb31d0315a6b7c5741ca9c6e8f1a080a9..ce1007456d9913d7ebd94f145a4334efc8f5e914 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
+++ b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
@@ -72,12 +72,12 @@ using namespace AutotoolsProjectManager::Internal;
 using namespace ProjectExplorer;
 
 AutotoolsProject::AutotoolsProject(AutotoolsManager *manager, const QString &fileName) :
-    m_manager(manager),
     m_fileName(fileName),
     m_fileWatcher(new Utils::FileSystemWatcher(this)),
     m_makefileParserThread(0)
 {
     setId(Constants::AUTOTOOLS_PROJECT_ID);
+    setProjectManager(manager);
     setDocument(new AutotoolsProjectFile(m_fileName));
     m_rootNode = new AutotoolsProjectNode(projectFilePath());
     setProjectContext(Core::Context(Constants::PROJECT_CONTEXT));
@@ -110,11 +110,6 @@ QString AutotoolsProject::displayName() const
     return m_projectName;
 }
 
-IProjectManager *AutotoolsProject::projectManager() const
-{
-    return m_manager;
-}
-
 QString AutotoolsProject::defaultBuildDirectory(const QString &projectPath)
 {
     return QFileInfo(projectPath).absolutePath();
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsproject.h b/src/plugins/autotoolsprojectmanager/autotoolsproject.h
index 03787ecb981e5887ac3924c336840a106a2f1116..642da6c1bf004802421361880f8b851b1aea4513 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsproject.h
+++ b/src/plugins/autotoolsprojectmanager/autotoolsproject.h
@@ -74,7 +74,6 @@ public:
     ~AutotoolsProject() override;
 
     QString displayName() const override;
-    ProjectExplorer::IProjectManager *projectManager() const override;
     ProjectExplorer::ProjectNode *rootProjectNode() const override;
     QStringList files(FilesMode fileMode) const override;
     static QString defaultBuildDirectory(const QString &projectPath);
@@ -136,9 +135,6 @@ private:
     void updateCppCodeModel();
 
 private:
-    /// Project manager that has been passed in the constructor
-    AutotoolsManager *m_manager;
-
     /// File name of the makefile that has been passed in the constructor
     QString m_fileName;
     QString m_projectName;
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index ff9a747aed8efff0e651e34ddd1d2a1044188ea2..03e5ec9465bf301fbf583ea46d4ff66c950a7e59 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -87,14 +87,13 @@ using namespace Utils;
 /*!
   \class CMakeProject
 */
-CMakeProject::CMakeProject(CMakeManager *manager, const FileName &fileName)
-    : m_manager(manager),
-      m_activeTarget(0),
-      m_fileName(fileName),
-      m_rootNode(new CMakeProjectNode(fileName)),
-      m_watcher(new QFileSystemWatcher(this))
+CMakeProject::CMakeProject(CMakeManager *manager, const FileName &fileName) :
+    m_fileName(fileName),
+    m_rootNode(new CMakeProjectNode(fileName)),
+    m_watcher(new QFileSystemWatcher(this))
 {
     setId(Constants::CMAKEPROJECT_ID);
+    setProjectManager(manager);
     setDocument(new CMakeFile(fileName));
     setProjectContext(Core::Context(CMakeProjectManager::Constants::PROJECTCONTEXT));
     setProjectLanguages(Core::Context(ProjectExplorer::Constants::LANG_CXX));
@@ -511,11 +510,6 @@ QString CMakeProject::displayName() const
     return m_rootNode->displayName();
 }
 
-IProjectManager *CMakeProject::projectManager() const
-{
-    return m_manager;
-}
-
 ProjectExplorer::ProjectNode *CMakeProject::rootProjectNode() const
 {
     return m_rootNode;
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index a70a22db89c2156b302d36a2124605227319c3f7..240c8116be0c476ea468dd1670252bba424c8424 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -99,7 +99,6 @@ public:
     ~CMakeProject() override;
 
     QString displayName() const override;
-    ProjectExplorer::IProjectManager *projectManager() const override;
 
     ProjectExplorer::ProjectNode *rootProjectNode() const override;
 
@@ -147,8 +146,7 @@ private:
     void updateApplicationAndDeploymentTargets();
     QStringList getCXXFlagsFor(const CMakeBuildTarget &buildTarget, QByteArray *cachedBuildNinja);
 
-    Internal::CMakeManager *m_manager;
-    ProjectExplorer::Target *m_activeTarget;
+    ProjectExplorer::Target *m_activeTarget = 0;
     Utils::FileName m_fileName;
 
     // TODO probably need a CMake specific node structure
diff --git a/src/plugins/cpptools/modelmanagertesthelper.h b/src/plugins/cpptools/modelmanagertesthelper.h
index 2c8b236d479ed938cfaa7d3ce124ada945c3ca68..5b85eedc8122631b9eeb7c0a4b7d936320870bb8 100644
--- a/src/plugins/cpptools/modelmanagertesthelper.h
+++ b/src/plugins/cpptools/modelmanagertesthelper.h
@@ -50,7 +50,6 @@ public:
     ~TestProject() override;
 
     QString displayName() const override { return m_name; }
-    ProjectExplorer::IProjectManager *projectManager() const override { return 0; }
     ProjectExplorer::ProjectNode *rootProjectNode() const override { return 0; }
 
     QStringList files(FilesMode fileMode) const override { Q_UNUSED(fileMode); return QStringList(); }
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index cbee9bed08397d5ac5c4b1e52ac1b93b63231d72..b430fe522b3dc8bc1f94ef600a6086287268ff55 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -67,11 +67,10 @@ namespace Internal {
 //
 ////////////////////////////////////////////////////////////////////////////////////
 
-GenericProject::GenericProject(Manager *manager, const QString &fileName)
-    : m_manager(manager),
-      m_fileName(fileName)
+GenericProject::GenericProject(Manager *manager, const QString &fileName) : m_fileName(fileName)
 {
     setId(Constants::GENERICPROJECT_ID);
+    setProjectManager(manager);
     setDocument(new GenericProjectFile(this, m_fileName, GenericProject::Everything));
     setProjectContext(Context(GenericProjectManager::Constants::PROJECTCONTEXT));
     setProjectLanguages(Context(ProjectExplorer::Constants::LANG_CXX));
@@ -112,13 +111,13 @@ GenericProject::GenericProject(Manager *manager, const QString &fileName)
                              << projectIncludesNode
                              << projectConfigNode);
 
-    m_manager->registerProject(this);
+    projectManager()->registerProject(this);
 }
 
 GenericProject::~GenericProject()
 {
     m_codeModelFuture.cancel();
-    m_manager->unregisterProject(this);
+    projectManager()->unregisterProject(this);
 
     delete m_rootNode;
 }
@@ -388,9 +387,9 @@ QString GenericProject::displayName() const
     return m_projectName;
 }
 
-IProjectManager *GenericProject::projectManager() const
+Manager *GenericProject::projectManager() const
 {
-    return m_manager;
+    return static_cast<Manager *>(Project::projectManager());
 }
 
 GenericProjectNode *GenericProject::rootProjectNode() const
diff --git a/src/plugins/genericprojectmanager/genericproject.h b/src/plugins/genericprojectmanager/genericproject.h
index 24f44041cab0e376ea57441adbaf7b7e41fa9073..95a2e7d7e8559682a08edbb325f981f9b7cd405d 100644
--- a/src/plugins/genericprojectmanager/genericproject.h
+++ b/src/plugins/genericprojectmanager/genericproject.h
@@ -61,7 +61,7 @@ public:
     QString configFileName() const;
 
     QString displayName() const override;
-    ProjectExplorer::IProjectManager *projectManager() const override;
+    Manager *projectManager() const override;
 
     GenericProjectNode *rootProjectNode() const override;
     QStringList files(FilesMode fileMode) const override;
@@ -96,7 +96,6 @@ private:
 
     void refreshCppCodeModel();
 
-    Manager *m_manager;
     QString m_fileName;
     QString m_filesFileName;
     QString m_includesFileName;
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index f7dfbb55009673467a04c43cdd72edb1e03c44c7..5143a03b202cd5fe994e6fded15add8c9227945a 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -94,6 +94,7 @@ public:
 
     Core::Id m_id;
     Core::IDocument *m_document = 0;
+    IProjectManager *m_manager = 0;
     QList<Target *> m_targets;
     Target *m_activeTarget = 0;
     EditorConfiguration m_editorConfiguration;
@@ -424,6 +425,13 @@ void Project::setDocument(Core::IDocument *doc)
     d->m_document = doc;
 }
 
+void Project::setProjectManager(IProjectManager *manager)
+{
+    QTC_ASSERT(manager, return);
+    QTC_ASSERT(!d->m_manager, return);
+    d->m_manager = manager;
+}
+
 Target *Project::restoreTarget(const QVariantMap &data)
 {
     Core::Id id = idFromMap(data);
@@ -508,6 +516,11 @@ Utils::FileName Project::projectDirectory(const Utils::FileName &top)
     return Utils::FileName::fromString(top.toFileInfo().absoluteDir().path());
 }
 
+IProjectManager *Project::projectManager() const
+{
+    QTC_CHECK(d->m_manager);
+    return d->m_manager;
+}
 
 Project::RestoreResult Project::fromMap(const QVariantMap &map, QString *errorMessage)
 {
diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h
index b8fbf1ac3f1265ec0c9842b4bff12dc1089057ae..e5322b44a1e9febcb4f1b7ee392b1c47d1aabb78 100644
--- a/src/plugins/projectexplorer/project.h
+++ b/src/plugins/projectexplorer/project.h
@@ -86,7 +86,7 @@ public:
     Utils::FileName projectDirectory() const;
     static Utils::FileName projectDirectory(const Utils::FileName &top);
 
-    virtual IProjectManager *projectManager() const = 0;
+    virtual IProjectManager *projectManager() const;
 
     bool hasActiveBuildSettings() const;
 
@@ -174,6 +174,7 @@ protected:
 
     void setId(Core::Id id);
     void setDocument(Core::IDocument *doc); // takes ownership!
+    void setProjectManager(IProjectManager *manager);
     void setProjectContext(Core::Context context);
     void setProjectLanguages(Core::Context language);
     void addProjectLanguage(Core::Id id);
diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp
index d6485c6e8019451b476a84bc7c120daf6c62970f..66b4d4085db037673f133eaafe4a0aad7ce5ddda 100644
--- a/src/plugins/pythoneditor/pythoneditorplugin.cpp
+++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp
@@ -249,7 +249,7 @@ public:
     ~PythonProject() override;
 
     QString displayName() const override { return m_projectName; }
-    IProjectManager *projectManager() const override { return m_manager; }
+    PythonProjectManager *projectManager() const override;
 
     ProjectNode *rootProjectNode() const override;
     QStringList files(FilesMode) const override { return m_files; }
@@ -270,7 +270,6 @@ private:
     QStringList processEntries(const QStringList &paths,
                                QHash<QString, QString> *map = 0) const;
 
-    PythonProjectManager *m_manager;
     QString m_projectFileName;
     QString m_projectName;
     QStringList m_rawFileList;
@@ -617,11 +616,11 @@ private:
 };
 
 
-PythonProject::PythonProject(PythonProjectManager *manager, const QString &fileName)
-    : m_manager(manager),
-      m_projectFileName(fileName)
+PythonProject::PythonProject(PythonProjectManager *manager, const QString &fileName) :
+    m_projectFileName(fileName)
 {
     setId(PythonProjectId);
+    setProjectManager(manager);
     setDocument(new PythonProjectFile(this, m_projectFileName));
     DocumentManager::addDocument(document());
 
@@ -633,16 +632,21 @@ PythonProject::PythonProject(PythonProjectManager *manager, const QString &fileN
     m_projectName = fileInfo.completeBaseName();
     m_rootNode = new PythonProjectNode(this);
 
-    m_manager->registerProject(this);
+    projectManager()->registerProject(this);
 }
 
 PythonProject::~PythonProject()
 {
-    m_manager->unregisterProject(this);
+    projectManager()->unregisterProject(this);
 
     delete m_rootNode;
 }
 
+PythonProjectManager *PythonProject::projectManager() const
+{
+    return static_cast<PythonProjectManager *>(Project::projectManager());
+}
+
 static QStringList readLines(const QString &absoluteFileName)
 {
     QStringList lines;
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index c895b8097b05f29d8141112331ef44adb8e3abad..b396589ed93389fbcb7c644ead8ef22df88e87d1 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -100,7 +100,6 @@ static const char CONFIG_PRECOMPILEDHEADER[] = "precompiledHeader";
 // --------------------------------------------------------------------
 
 QbsProject::QbsProject(QbsManager *manager, const QString &fileName) :
-    m_manager(manager),
     m_projectName(QFileInfo(fileName).completeBaseName()),
     m_fileName(fileName),
     m_rootProjectNode(0),
@@ -113,6 +112,7 @@ QbsProject::QbsProject(QbsManager *manager, const QString &fileName) :
     m_parsingDelay.setInterval(1000); // delay parsing by 1s.
 
     setId(Constants::PROJECT_ID);
+    setProjectManager(manager);
 
     setDocument(new QbsProjectFile(this, m_fileName));
     DocumentManager::addDocument(document());
@@ -157,7 +157,7 @@ QString QbsProject::displayName() const
 
 QbsManager *QbsProject::projectManager() const
 {
-    return m_manager;
+    return static_cast<QbsManager *>(Project::projectManager());
 }
 
 ProjectNode *QbsProject::rootProjectNode() const
@@ -402,7 +402,7 @@ qbs::InstallJob *QbsProject::install(const qbs::InstallOptions &opts)
 
 QString QbsProject::profileForTarget(const Target *t) const
 {
-    return m_manager->profileForKit(t->kit());
+    return projectManager()->profileForKit(t->kit());
 }
 
 bool QbsProject::isParsing() const
diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h
index a69fbce1ce159f9fc119a7e59a2d1ebdb56c501d..f84c6f89fa98f4e655b5b92da2d42db2926467ff 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.h
+++ b/src/plugins/qbsprojectmanager/qbsproject.h
@@ -145,7 +145,6 @@ private:
     qbs::GroupData reRetrieveGroupData(const qbs::ProductData &oldProduct,
                                        const qbs::GroupData &oldGroup);
 
-    QbsManager *const m_manager;
     const QString m_projectName;
     const QString m_fileName;
     qbs::Project m_qbsProject;
diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp
index b2485359cfd93dfe0295067ec3e0d1df31c559ee..126c3c7aa4c556486303e780c31c45d47cd32aac 100644
--- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp
@@ -1180,7 +1180,7 @@ bool QmakePriFileNode::saveModifiedEditors()
 
     // force instant reload of ourselves
     QtSupport::ProFileCacheManager::instance()->discardFile(m_projectFilePath.toString());
-    m_project->qmakeProjectManager()->notifyChanged(m_projectFilePath);
+    m_project->projectManager()->notifyChanged(m_projectFilePath);
     return true;
 }
 
@@ -1369,7 +1369,7 @@ void QmakePriFileNode::save(const QStringList &lines)
     saver.write(lines.join(QLatin1Char('\n')).toLocal8Bit());
     saver.finalize(Core::ICore::mainWindow());
 
-    m_project->qmakeProjectManager()->notifyChanged(m_projectFilePath);
+    m_project->projectManager()->notifyChanged(m_projectFilePath);
     Core::DocumentManager::unexpectFileChange(m_projectFilePath.toString());
     // This is a hack.
     // We are saving twice in a very short timeframe, once the editor and once the ProFile.
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
index 53b244ef2fd3518c5beb88cf19bf125cddde242f..7c3019ea833f5b300975ae2c084ac9e2cb5e253f 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
@@ -308,11 +308,11 @@ bool QmakeProjectFile::reload(QString *errorString, ReloadFlag flag, ChangeType
   */
 
 QmakeProject::QmakeProject(QmakeManager *manager, const QString &fileName) :
-    m_manager(manager),
     m_projectFiles(new QmakeProjectFiles),
     m_qmakeVfs(new QMakeVfs)
 {
     setId(Constants::QMAKEPROJECT_ID);
+    setProjectManager(manager);
     setDocument(new QmakeProjectFile(fileName));
     setProjectContext(Core::Context(QmakeProjectManager::Constants::PROJECT_ID));
     setProjectLanguages(Core::Context(ProjectExplorer::Constants::LANG_CXX));
@@ -334,7 +334,7 @@ QmakeProject::~QmakeProject()
 {
     m_codeModelFuture.cancel();
     m_asyncUpdateState = ShuttingDown;
-    m_manager->unregisterProject(this);
+    projectManager()->unregisterProject(this);
     delete m_projectFiles;
     m_cancelEvaluate = true;
     // Deleting the root node triggers a few things, make sure rootProjectNode
@@ -374,7 +374,7 @@ Project::RestoreResult QmakeProject::fromMap(const QVariantMap &map, QString *er
         }
     }
 
-    m_manager->registerProject(this);
+    projectManager()->registerProject(this);
 
     m_rootProjectNode = new QmakeProFileNode(this, projectFilePath());
 
@@ -825,14 +825,9 @@ void QmakeProject::buildFinished(bool success)
         m_qmakeVfs->invalidateContents();
 }
 
-IProjectManager *QmakeProject::projectManager() const
+QmakeManager *QmakeProject::projectManager() const
 {
-    return m_manager;
-}
-
-QmakeManager *QmakeProject::qmakeProjectManager() const
-{
-    return m_manager;
+    return static_cast<QmakeManager *>(Project::projectManager());
 }
 
 bool QmakeProject::supportsKit(Kit *k, QString *errorMessage) const
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.h b/src/plugins/qmakeprojectmanager/qmakeproject.h
index cfa28f879ddd54cba9389c1600d5b383ed4da1c5..202f72b7cc32893104a90813ccfbefd4abf60407 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.h
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.h
@@ -32,6 +32,7 @@
 #define QMAKEPROJECT_H
 
 #include "qmakeprojectmanager_global.h"
+#include "qmakeprojectmanager.h"
 #include "qmakenodes.h"
 
 #include <projectexplorer/project.h>
@@ -52,7 +53,6 @@ namespace QtSupport { class ProFileReader; }
 
 namespace QmakeProjectManager {
 class QmakeBuildConfiguration;
-class QmakeManager;
 class QmakePriFileNode;
 class QmakeProFileNode;
 
@@ -72,8 +72,7 @@ public:
     ~QmakeProject() override;
 
     QString displayName() const override;
-    ProjectExplorer::IProjectManager *projectManager() const override;
-    QmakeManager *qmakeProjectManager() const;
+    QmakeManager *projectManager() const override;
 
     bool supportsKit(ProjectExplorer::Kit *k, QString *errorMesage) const override;
 
@@ -181,7 +180,6 @@ private:
     void startAsyncTimer(QmakeProFileNode::AsyncUpdateDelay delay);
     bool matchesKit(const ProjectExplorer::Kit *kit);
 
-    QmakeManager *m_manager;
     QmakeProFileNode *m_rootProjectNode = 0;
 
     // Current configuration
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index f2ec9503849c566ade27a6b625b4f656ab8cbebf..ef8589e7d370a0718df0f304221eca4543a7085b 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -58,13 +58,12 @@ namespace Internal {
 
 } // namespace Internal
 
-QmlProject::QmlProject(Internal::Manager *manager, const Utils::FileName &fileName)
-    : m_manager(manager),
-      m_fileName(fileName),
-      m_defaultImport(UnknownImport),
-      m_activeTarget(0)
+QmlProject::QmlProject(Internal::Manager *manager, const Utils::FileName &fileName) :
+    m_fileName(fileName),
+    m_defaultImport(UnknownImport)
 {
     setId("QmlProjectManager.QmlProject");
+    setProjectManager(manager);
     setDocument(new Internal::QmlProjectFile(this, fileName));
     DocumentManager::addDocument(document(), true);
 
@@ -76,12 +75,12 @@ QmlProject::QmlProject(Internal::Manager *manager, const Utils::FileName &fileNa
 
     m_rootNode = new Internal::QmlProjectNode(this);
 
-    m_manager->registerProject(this);
+    projectManager()->registerProject(this);
 }
 
 QmlProject::~QmlProject()
 {
-    m_manager->unregisterProject(this);
+    projectManager()->unregisterProject(this);
 
     delete m_projectItem.data();
     delete m_rootNode;
@@ -290,9 +289,9 @@ QString QmlProject::displayName() const
     return m_projectName;
 }
 
-IProjectManager *QmlProject::projectManager() const
+Internal::Manager *QmlProject::projectManager() const
 {
-    return m_manager;
+    return static_cast<Internal::Manager *>(Project::projectManager());
 }
 
 bool QmlProject::supportsKit(Kit *k, QString *errorMessage) const
diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index b3fe9a19b5d51bbe01d30c5c8aabf99b2c8b0f72..702837f831bc1dca0a94a2def3fc718ba7c794bd 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.h
+++ b/src/plugins/qmlprojectmanager/qmlproject.h
@@ -33,6 +33,8 @@
 
 #include "qmlprojectmanager_global.h"
 
+#include "qmlprojectmanager.h"
+
 #include <projectexplorer/project.h>
 
 #include <QPointer>
@@ -46,7 +48,6 @@ namespace QmlProjectManager {
 class QmlProjectItem;
 
 namespace Internal {
-class Manager;
 class QmlProjectFile;
 class QmlProjectNode;
 } // namespace Internal
@@ -62,7 +63,7 @@ public:
     Utils::FileName filesFileName() const;
 
     QString displayName() const override;
-    ProjectExplorer::IProjectManager *projectManager() const override;
+    Internal::Manager *projectManager() const override;
 
     bool supportsKit(ProjectExplorer::Kit *k, QString *errorMessage) const override;
 
@@ -109,11 +110,10 @@ private:
     QStringList convertToAbsoluteFiles(const QStringList &paths) const;
     QmlJS::ModelManagerInterface *modelManager() const;
 
-    Internal::Manager *m_manager;
     Utils::FileName m_fileName;
     QString m_projectName;
     QmlImport m_defaultImport;
-    ProjectExplorer::Target *m_activeTarget;
+    ProjectExplorer::Target *m_activeTarget = 0;
 
     // plain format
     QStringList m_files;