diff --git a/python/scientific/intellij.python.community.scientific.iml b/python/scientific/intellij.python.community.scientific.iml
deleted file mode 100644
index 78a9b9242ffb..000000000000
--- a/python/scientific/intellij.python.community.scientific.iml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/python/src/META-INF/python-core-common.xml b/python/src/META-INF/python-core-common.xml
index f28587b3242c..a698e605c4df 100644
--- a/python/src/META-INF/python-core-common.xml
+++ b/python/src/META-INF/python-core-common.xml
@@ -721,9 +721,8 @@
interface="com.jetbrains.python.sdk.skeletons.PyPregeneratedSkeletonsProvider"/>
-
+ interface="com.jetbrains.scientific.extension.DisplayMessageHandler"/>
diff --git a/python/scientific/src/com/jetbrains/python/scientific/extension/DisplayMessageHandler.java b/python/src/com/jetbrains/scientific/extension/DisplayMessageHandler.java
similarity index 75%
rename from python/scientific/src/com/jetbrains/python/scientific/extension/DisplayMessageHandler.java
rename to python/src/com/jetbrains/scientific/extension/DisplayMessageHandler.java
index 992ffba4a7f1..dbe4e492774d 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/extension/DisplayMessageHandler.java
+++ b/python/src/com/jetbrains/scientific/extension/DisplayMessageHandler.java
@@ -1,8 +1,8 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.extension;
+package com.jetbrains.scientific.extension;
import com.intellij.openapi.project.Project;
-import com.jetbrains.python.scientific.figure.Figure;
+import com.jetbrains.scientific.figure.Figure;
public interface DisplayMessageHandler {
String getApplicableMessageType();
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/Figure.java b/python/src/com/jetbrains/scientific/figure/Figure.java
similarity index 85%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/Figure.java
rename to python/src/com/jetbrains/scientific/figure/Figure.java
index ec550046c60e..fc148879f872 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/Figure.java
+++ b/python/src/com/jetbrains/scientific/figure/Figure.java
@@ -1,5 +1,5 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure;
+package com.jetbrains.scientific.figure;
import com.intellij.ui.tabs.TabInfo;
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/FigureConstants.java b/python/src/com/jetbrains/scientific/figure/FigureConstants.java
similarity index 89%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/FigureConstants.java
rename to python/src/com/jetbrains/scientific/figure/FigureConstants.java
index 0c1c5c671f22..562f05cf5738 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/FigureConstants.java
+++ b/python/src/com/jetbrains/scientific/figure/FigureConstants.java
@@ -1,5 +1,5 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure;
+package com.jetbrains.scientific.figure;
public class FigureConstants {
public static final int THUMBNAIL_ICON_WIDTH = 64;
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/WithBinaryContent.java b/python/src/com/jetbrains/scientific/figure/WithBinaryContent.java
similarity index 80%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/WithBinaryContent.java
rename to python/src/com/jetbrains/scientific/figure/WithBinaryContent.java
index 646fdd80674d..41dcd3ffeb31 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/WithBinaryContent.java
+++ b/python/src/com/jetbrains/scientific/figure/WithBinaryContent.java
@@ -1,5 +1,5 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure;
+package com.jetbrains.scientific.figure;
public interface WithBinaryContent {
byte[] getBytes();
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/WithDockableContent.java b/python/src/com/jetbrains/scientific/figure/WithDockableContent.java
similarity index 85%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/WithDockableContent.java
rename to python/src/com/jetbrains/scientific/figure/WithDockableContent.java
index 79005318d2cf..0b477f72628c 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/WithDockableContent.java
+++ b/python/src/com/jetbrains/scientific/figure/WithDockableContent.java
@@ -1,5 +1,5 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure;
+package com.jetbrains.scientific.figure;
import com.intellij.ui.docking.DockableContent;
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/base/FigureBase.java b/python/src/com/jetbrains/scientific/figure/base/FigureBase.java
similarity index 84%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/base/FigureBase.java
rename to python/src/com/jetbrains/scientific/figure/base/FigureBase.java
index c94cc30d0500..fa38a8a4cec5 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/base/FigureBase.java
+++ b/python/src/com/jetbrains/scientific/figure/base/FigureBase.java
@@ -1,7 +1,7 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure.base;
+package com.jetbrains.scientific.figure.base;
-import com.jetbrains.python.scientific.figure.Figure;
+import com.jetbrains.scientific.figure.Figure;
import static com.google.common.base.Preconditions.checkState;
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/base/FigureUtil.java b/python/src/com/jetbrains/scientific/figure/base/FigureUtil.java
similarity index 93%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/base/FigureUtil.java
rename to python/src/com/jetbrains/scientific/figure/base/FigureUtil.java
index dc09bcd7749b..07ae126db647 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/base/FigureUtil.java
+++ b/python/src/com/jetbrains/scientific/figure/base/FigureUtil.java
@@ -1,9 +1,9 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure.base;
+package com.jetbrains.scientific.figure.base;
import com.intellij.util.ui.JBUI;
-import com.jetbrains.python.scientific.figure.FigureConstants;
-import com.jetbrains.python.scientific.figure.WithBinaryContent;
+import com.jetbrains.scientific.figure.FigureConstants;
+import com.jetbrains.scientific.figure.WithBinaryContent;
import javax.imageio.ImageIO;
import javax.swing.*;
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/component/ComponentFigure.java b/python/src/com/jetbrains/scientific/figure/component/ComponentFigure.java
similarity index 88%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/component/ComponentFigure.java
rename to python/src/com/jetbrains/scientific/figure/component/ComponentFigure.java
index cbe6d817fa97..d2a74b953455 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/component/ComponentFigure.java
+++ b/python/src/com/jetbrains/scientific/figure/component/ComponentFigure.java
@@ -1,5 +1,5 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure.component;
+package com.jetbrains.scientific.figure.component;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
@@ -7,7 +7,7 @@ import com.intellij.openapi.util.Disposer;
import com.intellij.ui.tabs.TabInfo;
import com.intellij.util.Consumer;
import com.intellij.util.ui.UIUtil;
-import com.jetbrains.python.scientific.figure.base.FigureBase;
+import com.jetbrains.scientific.figure.base.FigureBase;
import javax.swing.*;
import java.awt.*;
@@ -16,10 +16,10 @@ import java.awt.event.ComponentEvent;
import java.awt.event.ContainerAdapter;
import java.awt.event.ContainerEvent;
-import static com.jetbrains.python.scientific.figure.FigureConstants.THUMBNAIL_ICON_HEIGHT;
-import static com.jetbrains.python.scientific.figure.FigureConstants.THUMBNAIL_ICON_WIDTH;
-import static com.jetbrains.python.scientific.figure.base.FigureUtil.componentImage;
-import static com.jetbrains.python.scientific.figure.base.FigureUtil.fit;
+import static com.jetbrains.scientific.figure.FigureConstants.THUMBNAIL_ICON_HEIGHT;
+import static com.jetbrains.scientific.figure.FigureConstants.THUMBNAIL_ICON_WIDTH;
+import static com.jetbrains.scientific.figure.base.FigureUtil.componentImage;
+import static com.jetbrains.scientific.figure.base.FigureUtil.fit;
public class ComponentFigure extends FigureBase {
private final ComponentProvider myComponentProvider;
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/component/ComponentProvider.java b/python/src/com/jetbrains/scientific/figure/component/ComponentProvider.java
similarity index 81%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/component/ComponentProvider.java
rename to python/src/com/jetbrains/scientific/figure/component/ComponentProvider.java
index ff6849a81ced..f825b92e0e7d 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/component/ComponentProvider.java
+++ b/python/src/com/jetbrains/scientific/figure/component/ComponentProvider.java
@@ -1,5 +1,5 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure.component;
+package com.jetbrains.scientific.figure.component;
import javax.swing.*;
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/image/ImageFigure.java b/python/src/com/jetbrains/scientific/figure/image/ImageFigure.java
similarity index 90%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/image/ImageFigure.java
rename to python/src/com/jetbrains/scientific/figure/image/ImageFigure.java
index e096e7cc5dc9..d6f8350ef0ae 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/image/ImageFigure.java
+++ b/python/src/com/jetbrains/scientific/figure/image/ImageFigure.java
@@ -1,5 +1,5 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure.image;
+package com.jetbrains.scientific.figure.image;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.actionSystem.Presentation;
@@ -14,16 +14,16 @@ import com.intellij.ui.docking.DockableContent;
import com.intellij.ui.tabs.TabInfo;
import com.intellij.ui.tabs.impl.JBTabsImpl;
import com.intellij.util.ui.UIUtil;
-import com.jetbrains.python.scientific.figure.WithBinaryContent;
-import com.jetbrains.python.scientific.figure.WithDockableContent;
-import com.jetbrains.python.scientific.figure.base.FigureBase;
-import com.jetbrains.python.scientific.figure.base.FigureUtil;
+import com.jetbrains.scientific.figure.WithBinaryContent;
+import com.jetbrains.scientific.figure.WithDockableContent;
+import com.jetbrains.scientific.figure.base.FigureBase;
+import com.jetbrains.scientific.figure.base.FigureUtil;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
-import static com.jetbrains.python.scientific.figure.FigureConstants.*;
+import static com.jetbrains.scientific.figure.FigureConstants.*;
public class ImageFigure extends FigureBase implements WithDockableContent {
public static ImageFigure createDefault(BufferedImage image, Project project) {
diff --git a/python/scientific/src/com/jetbrains/python/scientific/figure/image/ImageVirtualFile.java b/python/src/com/jetbrains/scientific/figure/image/ImageVirtualFile.java
similarity index 92%
rename from python/scientific/src/com/jetbrains/python/scientific/figure/image/ImageVirtualFile.java
rename to python/src/com/jetbrains/scientific/figure/image/ImageVirtualFile.java
index 05a4e9cff3c8..be5413ec4d86 100644
--- a/python/scientific/src/com/jetbrains/python/scientific/figure/image/ImageVirtualFile.java
+++ b/python/src/com/jetbrains/scientific/figure/image/ImageVirtualFile.java
@@ -1,10 +1,10 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.scientific.figure.image;
+package com.jetbrains.scientific.figure.image;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.testFramework.BinaryLightVirtualFile;
-import com.jetbrains.python.scientific.figure.base.FigureUtil;
+import com.jetbrains.scientific.figure.base.FigureUtil;
import java.awt.image.BufferedImage;
import java.io.IOException;