diff --git a/eotimeseriesviewer/main.py b/eotimeseriesviewer/main.py
index a25f58904cdd55d10f389eee1f95d63ef5ccbd8a..2797237947ee29431fae50a965f26c212f44bd2c 100644
--- a/eotimeseriesviewer/main.py
+++ b/eotimeseriesviewer/main.py
@@ -37,21 +37,20 @@ if os.path.exists(path):
     multiprocessing.set_executable(path)
     sys.argv = [ None ]
 """
-
+import sys
 import qgis.utils
-from qgis.core import *
+
 from qgis.core import QgsMapLayer, QgsRasterLayer, QgsVectorLayer, QgsMessageOutput, QgsCoordinateReferenceSystem, \
     Qgis, QgsWkbTypes, QgsTask, QgsProviderRegistry, QgsMapLayerStore, QgsFeature, QgsField, \
     QgsTextFormat, QgsProject, QgsSingleSymbolRenderer, QgsGeometry, QgsApplication, QgsFillSymbol, \
     QgsProjectArchive, QgsZipUtils, QgsPointXY
 
-from qgis.gui import *
 from qgis.gui import QgsMapCanvas, QgsStatusBar, QgsFileWidget, \
     QgsMessageBar, QgsMessageViewer, QgsDockWidget, QgsTaskManagerWidget, QgisInterface
 
 import qgis.utils
-from eotimeseriesviewer import LOG_MESSAGE_TAG
-from eotimeseriesviewer.utils import *
+from eotimeseriesviewer import LOG_MESSAGE_TAG, settings
+from eotimeseriesviewer.utils import SpatialPoint, datetime64, fixMenuButtons, file_search
 from eotimeseriesviewer.timeseries import *
 from eotimeseriesviewer.settings import Keys as SettingKeys
 from eotimeseriesviewer.mapcanvas import MapCanvas
@@ -64,6 +63,7 @@ from .externals.qps.speclib.gui import SpectralLibraryPanel
 from .externals.qps.maptools import MapTools, CursorLocationMapTool, QgsMapToolSelect, QgsMapToolSelectionHandler
 from .externals.qps.cursorlocationvalue import CursorLocationInfoModel, CursorLocationInfoDock
 from .externals.qps.vectorlayertools import VectorLayerTools
+from .externals.qps.maptools import MapTools
 import eotimeseriesviewer.labeling
 from eotimeseriesviewer import debugLog
 
@@ -1282,9 +1282,6 @@ class EOTimeSeriesViewer(QgisInterface, QObject):
 
     def onShowProfile(self, spatialPoint, mapCanvas, mapToolKey):
 
-        assert isinstance(spatialPoint, SpatialPoint)
-        assert isinstance(mapCanvas, QgsMapCanvas)
-        from eotimeseriesviewer.mapcanvas import MapTools
         assert mapToolKey in MapTools.mapToolValues()
 
         if mapToolKey == MapTools.TemporalProfile:
diff --git a/eotimeseriesviewer/mapcanvas.py b/eotimeseriesviewer/mapcanvas.py
index d7689728cbb8e623aa1680356e85c47486970cd8..ca7951f23c8d4f16fc9d83cd502f8767ef5de783 100644
--- a/eotimeseriesviewer/mapcanvas.py
+++ b/eotimeseriesviewer/mapcanvas.py
@@ -29,7 +29,7 @@ import qgis.utils
 from qgis.PyQt.QtGui import QIcon, QContextMenuEvent, QMouseEvent, QPainter, QFont, QColor
 from qgis.PyQt.QtWidgets import QApplication, QDialog, QMenu, QFileDialog, QSizePolicy, QStyle, QStyleOptionProgressBar
 from qgis.PyQt.QtCore import QSize, QDate, QDateTime, QDir, QFile, QMimeData, pyqtSignal, Qt, \
-    QPoint, QObject, QRectF, QPointF, QRect, QTimer
+    QPoint, QObject, QRectF, QPointF, QRect, QTimer, QTime
 
 from qgis.core import QgsMapLayer, QgsRasterLayer, QgsVectorLayer, QgsContrastEnhancement, \
     QgsDateTimeRange, QgsProject, QgsTextRenderer, QgsApplication, QgsCoordinateReferenceSystem, \
diff --git a/eotimeseriesviewer/mapvisualization.py b/eotimeseriesviewer/mapvisualization.py
index 07453dbb931196edc269e36c40806e14830528e4..71f8db8dc60577788a9b7517123acd7eda17423b 100644
--- a/eotimeseriesviewer/mapvisualization.py
+++ b/eotimeseriesviewer/mapvisualization.py
@@ -1006,7 +1006,8 @@ class MapWidget(QFrame):
     sigCurrentCanvasChanged = pyqtSignal(MapCanvas)
     sigCurrentMapViewChanged = pyqtSignal(MapView)
     sigCurrentDateChanged = pyqtSignal(TimeSeriesDate)
-    sigCurrentLocationChanged = pyqtSignal(QgsCoordinateReferenceSystem, QgsPointXY)
+    sigCurrentLocationChanged = pyqtSignal([QgsCoordinateReferenceSystem, QgsPointXY],
+                                           [QgsCoordinateReferenceSystem, QgsPointXY, QgsMapCanvas])
     sigVisibleDatesChanged = pyqtSignal(list)
     sigViewModeChanged = pyqtSignal(ViewMode)
 
@@ -1746,8 +1747,8 @@ class MapWidget(QFrame):
         #    self.sigCurrentLocationChanged)
 
     def onCanvasLocationRequest(self, canvas: QgsMapCanvas, crs: QgsCoordinateReferenceSystem, pt: QgsPointXY):
-        spt = SpatialPoint(crs, pt)
-        self.sigCurrentLocationChanged.emit(spt, canvas)
+        self.sigCurrentLocationChanged[QgsCoordinateReferenceSystem, QgsPointXY].emit(crs, pt)
+        self.sigCurrentLocationChanged[QgsCoordinateReferenceSystem, QgsPointXY, QgsMapCanvas].emit(crs, pt, canvas)
 
     def onCanvasClicked(self, event: QMouseEvent):
         canvas = self.sender()
diff --git a/eotimeseriesviewer/mimedata.py b/eotimeseriesviewer/mimedata.py
index cacf7132f03dc2ba20048137ee97e67648892b86..d36976baeaabcf4564bdb4428edc3a5e94b45cf9 100644
--- a/eotimeseriesviewer/mimedata.py
+++ b/eotimeseriesviewer/mimedata.py
@@ -22,7 +22,7 @@ MDF_TEXT_HTML = 'text/html'
 MDF_TEXT_PLAIN = 'text/plain'
 
 
-def attributesd2dict(attributes):
+def attributes2dict(attributes):
     d = {}
     assert isinstance(attributes, QDomNamedNodeMap)
     for i in range(attributes.count()):
@@ -86,7 +86,7 @@ def toLayerList(mimeData):
         for i in range(childs.count()):
             child = childs.at(i).toElement()
             if child.tagName() == 'layer-tree-layer':
-                attributesLUT[child.attribute('id')] = attributesd2dict(child.attributes())
+                attributesLUT[child.attribute('id')] = attributes2dict(child.attributes())
 
         for treeLayer in layerTree.findLayers():
             assert isinstance(treeLayer, QgsLayerTreeLayer)