diff --git a/CHANGELOG b/CHANGELOG
index 0122710593ae3f8bbd53f1de1d60334ada1a37b1..9c37ba8f3ced13fa95ed63a345e95687a068f26b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,109 +1,99 @@
-2019-05-31
-        - increased version to 1.2
-        - added SaveAllMapsDialog  and menu option to export all maps as image files.
-        - fixed #91: select Temporal Profile / Spectral Profile button activates the required map tools (#91).
-        - fixed #92: map canvas context menu "copy to clipboard" options.
-
-2019-05-24
-        - increased version to 1.1
-        - Dates and data sources of the TimeSeries are now shown in a TreeView instead TableView
-        - Observation dates of current visible mapcanvases are highlighted in the time series tree view
-        - Sensor raster layer properties can be opened from MapView layer tree (#87). Stats will be related to center mapcanvas.
-        - fixed: StackedInputDialog, MapCanvas context menu, "Save Changes?" labeling dialog (#85),
-          remove temporal profile (#86), draw new feature error (#84), Crosshair button status (#90), and some more
-
-
-2019-05-15
-        - increased version to 1.0
-        - labeling tools to modify vector layers.
-        - quick labeling for time-labels information
-        - synchronization with QGIS Map canvas center
-        - SpectralLibrary can import SpectralProfiles from a raster image based on vector positions
-        - simplified MapView control dock, each MapView has it's own layer tree.
-        - improved MapTool organization
-        - removed PyQtGraph from list of required external python packages
-
-2019-03-29
-        - renamed plugin folder from "timeseriesviewerplugin" to "EOTimeSeriesViewer".
-        - improved SpectraLibrary tool
-        - CI tests with bitbucket pipelines
-        - several bug fixes
-
-2019-03-01
-        - increased version to 0.8
-        - added labeling panel
-        - scheduled map canvas refreshes
-        - multiple images per observationdata & sensor
-        - fixed several bugs
-
-2018-11-13
-        - fixed bugs which where caused by CRS changes
-        - fixed macOS QGIS (3.4.1.) crashes caused by QgsMapCanvas constructor
-
-2018-11-09
-        - uses QgsTaskManager for background loading
-        - own QgsMapLayerStore to not mix-up with (main) QGIS layers
-        - fixed bugs related to changes in QGIS API
-
-2018-06-20
-        - increase version to 0.7
-        - Visualization of images with stacked temporal information (each band = one observation date)
-        - some bugfixes
-
-2018-06-12
-    enhancements:
-        - Speclib I/O as CSV or ENVI-Spectral Library + CSV table for attributes
-        - temporary VRTs now created in-memory (gdal VSI mechanism) instead in a disk temp path
-
-    fixed bugs:
-        - Spectral Library: profile coordinate now in center of map pixel (issue #66)
-        - Save map canvas to clipboard
-        - Width of plot lines now scale-independent (issue #64, QPen.setCosmetic(True))
-        - adding fields to spectral library (issue #61)
-
-2018-06-04
-    - increased version to 0.6
-    - SpectralLibrary Module:
-        - now based on in-memory QgsVectorLayer
-        - Locations and values of spectral profile can be exported as vector data set
-        - Locations of spectral profiles can be rendered on MapCanvases
-
-    - Temporal Profile Module:
-        - now based on in-memory QgsVectorLayer
-        - Locations of temporal profiles can be exported as vector data set
-        - Band values of temporal profiles can be exported as CSV file
-        - Locations of temporal profiles can be rendered on MapCanvases
-
-    - several bug fixes
-
-2018-04-17
-    - increased version to 0.5
-    - ported to QGIS 3, Qt5 and Python 3.6
-    - improvements in temporal profile visualization
-    - removed several bug
-    - visibility of vector and raster layers can be toggled per map view
-    - improved interaction between QGIS and EOTSV (Buttons to import/export spatial extent of map canvas or center)
-
-2018-03-29
-    - improved definition of individual 2D / 3D charts per sensor & pixel-location
-    - added based OpenGL based 3D plot features (axis, grids, labels)
-    - changed name to "EO Time Series Viewer" (EOTSV)
-
-2018-02-11
-    - merged updates to temporal profile visualization, e.g.
+==============
+Changelog
+==============
+
+2019-05-31 (version 1.2):
+    * added SaveAllMapsDialog  and menu option to export all maps as image files.
+    * fixed #91: select Temporal Profile / Spectral Profile button activates the required map tools.
+    * fixed #92: map canvas context menu "copy to clipboard" options.
+
+2019-05-24 (version 1.1):
+    * dates and data sources of the TimeSeries are now shown in a TreeView instead TableView
+    * observation dates of current visible map canvases are highlighted in the time series tree view
+    * sensor raster layer properties can be opened from MapView layer tree #87. Stats will be related to center mapcanvas.
+    * fixed: StackedInputDialog, MapCanvas context menu, "Save Changes?" labeling dialog (#85), remove temporal profile (#86), draw new feature error (#84), Crosshair button status (#90), and some more
+
+2019-05-15 (version 1.0, major update):
+    * labeling tools to modify vector layers.
+    * quick labeling for time-labels information
+    * synchronization with QGIS Map canvas center
+    * SpectralLibrary can import SpectralProfiles from a raster image based on vector positions
+    * simplified MapView control dock, each MapView has it's own layer tree.
+    * improved MapTool organization
+    * removed PyQtGraph from list of required external python packages
+
+2019-03-29:
+    * renamed plugin folder from "timeseriesviewerplugin" to "EOTimeSeriesViewer".
+    * improved SpectraLibrary tool
+    * CI tests with bitbucket pipelines
+    * several bug fixes
+
+2019-03-01 (version 0.8):
+    * added labeling panel
+    * scheduled map canvas refreshes
+    * multiple images per observationdata & sensor
+    * fixed several bugs
+
+2018-11-13:
+    * fixed bugs which where caused by CRS changes
+    * fixed macOS QGIS (3.4.1.) crashes caused by QgsMapCanvas constructor
+
+2018-11-09:
+    * uses QgsTaskManager for background loading
+    * own QgsMapLayerStore to not mix-up with (main) QGIS layers
+    * fixed bugs related to changes in QGIS API
+
+2018-06-20 (version 0.7):
+    * Visualization of images with stacked temporal information (each band = one observation date)
+    * some bugfixes
+
+2018-06-12:
+    * Speclib I/O as CSV or ENVI-Spectral Library + CSV table for attributes
+    * temporary VRTs now created in-memory (gdal VSI mechanism) instead in a disk temp path
+    * Spectral Library: profile coordinate now in center of map pixel (issue #66)
+    * Save map canvas to clipboard
+    * Width of plot lines now scale-independent (issue #64, QPen.setCosmetic(True))
+    * adding fields to spectral library (issue #61)
+
+2018-06-04 (version 0.6):
+    SpectralLibrary Module
+        * now based on in-memory QgsVectorLayer
+        * Locations and values of spectral profile can be exported as vector data set
+        * Locations of spectral profiles can be rendered on MapCanvases
+
+    Temporal Profile Module
+        * now based on in-memory QgsVectorLayer
+        * Locations of temporal profiles can be exported as vector data set
+        * Band values of temporal profiles can be exported as CSV file
+        * Locations of temporal profiles can be rendered on MapCanvases
+
+2018-04-17 (version 0.5):
+    * ported to QGIS 3, Qt5 and Python 3.6
+    * improvements in temporal profile visualization
+    * removed several bug
+    * visibility of vector and raster layers can be toggled per map view
+    * improved interaction between QGIS and EOTSV (Buttons to import/export spatial extent of map canvas or center)
+
+2018-03-29:
+    * improved definition of individual 2D / 3D charts per sensor & pixel-location
+    * added based OpenGL based 3D plot features (axis, grids, labels)
+    * changed name to "EO Time Series Viewer" (EOTSV)
+
+2018-02-11:
+    * merged updates to temporal profile visualization, e.g.
       save temporal profiles, compare 2D profiles between different location, experimental 3D visualization
 
-2018-01-31
-    - added file filters for OpenFileDialog
+2018-01-31:
+    * added file filters for OpenFileDialog
 
-2018-01-19
-    - initialized Sphinx-based documentation
-    - improved map visualization + map settings
+2018-01-19:
+    * initialized Sphinx-based documentation
+    * improved map visualization + map settings
 
 2017-05-21:
-    - many changes, done in development branch "develop",
-    - e.g: QGIS MapCanvases for interactive maps, temporal profiles, ...
+    * many changes, done in development branch "develop",
+    * e.g: QGIS MapCanvases for interactive maps, temporal profiles, ...
 
 2017-02-14:
-    - first setup for test users in the recent development branch
+    * first setup for test users in the recent development branch
 
diff --git a/doc/source/changelog.rst b/doc/source/changelog.rst
index a61ecf41dba343280e4dab96d85ba1158a2d1ee6..a779ae667037f705becb02f7ea41c45636fbfc8b 100644
--- a/doc/source/changelog.rst
+++ b/doc/source/changelog.rst
@@ -1,201 +1,99 @@
-==========
-User Guide
-==========
-
-Version 1.2
------------
-
-Added menu option to export all maps as image files.
-
-.. image:: img/changelog.1.2/exportmapimages.png
-
-.. image:: img/changelog.1.2/exportmapimagesdialog.png
-
-Fixes:
-
-* select Temporal Profile / Spectral Profile button activates the required map tools (#91).
-* map canvas context menu "copy to clipboard" options (#92).
-
-
-Version 1.1
------------
-
-Time Series data sources are shown in a tree view, which improves the overview in case multiple source images exists per observation date.
-
-Observation dates of visible Map Canvases are highlighted in the time series tree view.
-
-.. image:: img/changelog.1.1/visibleobservationdates.png
-
-Fixes:
-
-* Sensor raster layer properties can be opened from MapView layer tree (#87). Stats will be related to center mapcanvas.
-* StackedInputDialog, MapCanvas context menu, "Save Changes?" labeling dialog (#85),
-* remove temporal profile (#86), draw new feature error (#84), Crosshair button status (#90), and some more
-
-
-Version 1.0
------------
-
-
-Map Canvas Context Menu
-.......................
-
-The map canvas context menu has been re-organized and enhanced by:
-
-    * zooming to single map layers
-    * open the properties of single map layers
-    * the "Set Quick Labels" button (see next feature)
-
-
-Quick Labeling
-..............
-
-
-The map canvas menu entry "Set Quick Labels" can be used to write sensor/product, file and observations-date specific information
-into attribute fields of linked vector layers.
-
-1. open the layer properties of the vector layer you like to label
-2. edit the form attributes and use the EOTS Quick Label form to each layer fields, that you like to
-   label automatically.
-3. Each map canvas relates to a raster timeseries sensor/product and observation date. From that we can derive the following label information:
-
-    ============ ========= ==============
-    Information  Data Type Example
-    ============ ========= ==============
-    Date         String    2014-04-01
-    DOY          Integer
-    Decimal Year Double    2014.234
-    Sensor Name  String    Landsat
-    File Path    String    image/....
-    ============ ========= ==============
-
-
-Labeling Dock
-.............
-
-The Labeling panel can be used to modify vector layers. The editing process is similar to that known from the QGIS
-attribute tables.
-
-1. Use the labeling panels combobox to select the vector layer you like to modify
-
-2. Press the "Start Editing" button
-
-3. Make your changes
-
-4. Save your edits or reject them
-
-
-Toolbar
-.......
-
-
-.. image:: img/changelog.1.0/toolbar.old.png
-
-Old toolbar
-
-.. image:: img/changelog.1.0/toolbar.new.png
-
-New toolbar
-
-The toolbar was enhanced with an button to import vector sources, to select, add and save vector features, and to synchronize
-the map canvas center with that of the QGIS main map canvas.
-
-.. image:: img/changelog.1.0/select_features.png
-
-Map Views
-.........
-
-.. image:: img/changelog.1.0/mapviewcontrolldock.new.png
-
-The map view control panel has been reorganized based on the [QToolBox](https://doc.qt.io/qt-5/qtoolbox.html#details) widget.
-This way fix a couple of layout issues, where map view settings looked squeezed
-    * each Map View now has an own map layer tree to specify the visibility and vertical order of map layers
-
-
-
-Time Series Model
-.................
-
-.. image:: img/changelog.1.0/timeseriessources.new.png
-
-The multi-sensor time series allows to add multiple images with same sensor properties and observation date.
-
-
-Version 0.8
------------
-
-- increased version to 0.8
-- added labeling panel
-- scheduled map canvas refreshes
-- multiple images per observationdata & sensor
-- fixed several bugs
-- uses QgsTaskManager for background loading
-- own QgsMapLayerStore to not mix-up with (main) QGIS layers
-
-Version 0.7
------------
-
-- Visualization of images with stacked temporal information (each band = one observation date)
-- Speclib I/O as CSV or ENVI-Spectral Library + CSV table for attributes
-- temporary VRTs now created in-memory (gdal VSI mechanism) instead in a disk temp path
-
-fixed bugs:
-        - Spectral Library: profile coordinate now in center of map pixel (issue #66)
-        - Save map canvas to clipboard
-        - Width of plot lines now scale-independent (issue #64, QPen.setCosmetic(True))
-        - adding fields to spectral library (issue #61)
-
-Version 0.6
------------
-
-SpectralLibrary Module
-......................
-
-- now based on in-memory QgsVectorLayer
-- Locations and values of spectral profile can be exported as vector data set
-- Locations of spectral profiles can be rendered on MapCanvases
-
-Temporal Profile Module
-.......................
-
-- now based on in-memory QgsVectorLayer
-- Locations of temporal profiles can be exported as vector data set
-- Band values of temporal profiles can be exported as CSV file
-- Locations of temporal profiles can be rendered on MapCanvases
-- several bug fixes
-
-Version 0.5 and before
-----------------------
-
-- increased version to 0.5
-- ported to QGIS 3, Qt5 and Python 3.6
-- improvements in temporal profile visualization
-- removed several bug
-- visibility of vector and raster layers can be toggled per map view
-- improved interaction between QGIS and EOTSV (Buttons to import/export spatial extent of map canvas or center)
-
-2018-03-29
-- improved definition of individual 2D / 3D charts per sensor & pixel-location
-- added based OpenGL based 3D plot features (axis, grids, labels)
-- changed name to "EO Time Series Viewer" (EOTSV)
-
-2018-02-11
-    - merged updates to temporal profile visualization, e.g.
+==============
+Changelog
+==============
+
+2019-05-31 (version 1.2):
+    * added SaveAllMapsDialog  and menu option to export all maps as image files.
+    * fixed `#91 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/91>`_: select Temporal Profile / Spectral Profile button activates the required map tools.
+    * fixed `#92 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/92>`_: map canvas context menu "copy to clipboard" options.
+
+2019-05-24 (version 1.1):
+    * dates and data sources of the TimeSeries are now shown in a TreeView instead TableView
+    * observation dates of current visible map canvases are highlighted in the time series tree view
+    * sensor raster layer properties can be opened from MapView layer tree `#87 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/87>`_. Stats will be related to center mapcanvas.
+    * fixed: StackedInputDialog, MapCanvas context menu, "Save Changes?" labeling dialog (`#85 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/85>`_), remove temporal profile (`#86 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/86>`_), draw new feature error (`#84 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/84>`_), Crosshair button status (`#90 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/90>`_), and some more
+
+2019-05-15 (version 1.0, major update):
+    * labeling tools to modify vector layers.
+    * quick labeling for time-labels information
+    * synchronization with QGIS Map canvas center
+    * SpectralLibrary can import SpectralProfiles from a raster image based on vector positions
+    * simplified MapView control dock, each MapView has it's own layer tree.
+    * improved MapTool organization
+    * removed PyQtGraph from list of required external python packages
+
+2019-03-29:
+    * renamed plugin folder from "timeseriesviewerplugin" to "EOTimeSeriesViewer".
+    * improved SpectraLibrary tool
+    * CI tests with bitbucket pipelines
+    * several bug fixes
+
+2019-03-01 (version 0.8):
+    * added labeling panel
+    * scheduled map canvas refreshes
+    * multiple images per observationdata & sensor
+    * fixed several bugs
+
+2018-11-13:
+    * fixed bugs which where caused by CRS changes
+    * fixed macOS QGIS (3.4.1.) crashes caused by QgsMapCanvas constructor
+
+2018-11-09:
+    * uses QgsTaskManager for background loading
+    * own QgsMapLayerStore to not mix-up with (main) QGIS layers
+    * fixed bugs related to changes in QGIS API
+
+2018-06-20 (version 0.7):
+    * Visualization of images with stacked temporal information (each band = one observation date)
+    * some bugfixes
+
+2018-06-12:
+    * Speclib I/O as CSV or ENVI-Spectral Library + CSV table for attributes
+    * temporary VRTs now created in-memory (gdal VSI mechanism) instead in a disk temp path
+    * Spectral Library: profile coordinate now in center of map pixel (issue `#66 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/66>`_)
+    * Save map canvas to clipboard
+    * Width of plot lines now scale-independent (issue `#64 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/64>`_, QPen.setCosmetic(True))
+    * adding fields to spectral library (issue `#61 <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/61>`_)
+
+2018-06-04 (version 0.6):
+    SpectralLibrary Module
+        * now based on in-memory QgsVectorLayer
+        * Locations and values of spectral profile can be exported as vector data set
+        * Locations of spectral profiles can be rendered on MapCanvases
+
+    Temporal Profile Module
+        * now based on in-memory QgsVectorLayer
+        * Locations of temporal profiles can be exported as vector data set
+        * Band values of temporal profiles can be exported as CSV file
+        * Locations of temporal profiles can be rendered on MapCanvases
+
+2018-04-17 (version 0.5):
+    * ported to QGIS 3, Qt5 and Python 3.6
+    * improvements in temporal profile visualization
+    * removed several bug
+    * visibility of vector and raster layers can be toggled per map view
+    * improved interaction between QGIS and EOTSV (Buttons to import/export spatial extent of map canvas or center)
+
+2018-03-29:
+    * improved definition of individual 2D / 3D charts per sensor & pixel-location
+    * added based OpenGL based 3D plot features (axis, grids, labels)
+    * changed name to "EO Time Series Viewer" (EOTSV)
+
+2018-02-11:
+    * merged updates to temporal profile visualization, e.g.
       save temporal profiles, compare 2D profiles between different location, experimental 3D visualization
 
-2018-01-31
-    - added file filters for OpenFileDialog
+2018-01-31:
+    * added file filters for OpenFileDialog
 
-2018-01-19
-    - initialized Sphinx-based documentation
-    - improved map visualization + map settings
+2018-01-19:
+    * initialized Sphinx-based documentation
+    * improved map visualization + map settings
 
 2017-05-21:
-    - many changes, done in development branch "develop",
-    - e.g: QGIS MapCanvases for interactive maps, temporal profiles, ...
+    * many changes, done in development branch "develop",
+    * e.g: QGIS MapCanvases for interactive maps, temporal profiles, ...
 
 2017-02-14:
-    - first setup for test users in the recent development branch
-
-
+    * first setup for test users in the recent development branch
 
diff --git a/doc/source/changelog_visual.rst b/doc/source/changelog_visual.rst
new file mode 100644
index 0000000000000000000000000000000000000000..31267035f471259a5c19177efe369229fba50447
--- /dev/null
+++ b/doc/source/changelog_visual.rst
@@ -0,0 +1,201 @@
+================
+Visual Changelog
+================
+
+
+Version 1.2
+-----------
+
+Added menu option to export all maps as image files.
+
+.. image:: img/changelog.1.2/exportmapimages.png
+
+.. image:: img/changelog.1.2/exportmapimagesdialog.png
+
+Fixes:
+
+* select Temporal Profile / Spectral Profile button activates the required map tools (#91).
+* map canvas context menu "copy to clipboard" options (#92).
+
+
+Version 1.1
+-----------
+
+Time Series data sources are shown in a tree view, which improves the overview in case multiple source images exists per observation date.
+
+Observation dates of visible Map Canvases are highlighted in the time series tree view.
+
+.. image:: img/changelog.1.1/visibleobservationdates.png
+
+Fixes:
+
+* Sensor raster layer properties can be opened from MapView layer tree (#87). Stats will be related to center mapcanvas.
+* StackedInputDialog, MapCanvas context menu, "Save Changes?" labeling dialog (#85),
+* remove temporal profile (#86), draw new feature error (#84), Crosshair button status (#90), and some more
+
+
+Version 1.0
+-----------
+
+
+Map Canvas Context Menu
+.......................
+
+The map canvas context menu has been re-organized and enhanced by:
+
+    * zooming to single map layers
+    * open the properties of single map layers
+    * the "Set Quick Labels" button (see next feature)
+
+
+Quick Labeling
+..............
+
+
+The map canvas menu entry "Set Quick Labels" can be used to write sensor/product, file and observations-date specific information
+into attribute fields of linked vector layers.
+
+1. open the layer properties of the vector layer you like to label
+2. edit the form attributes and use the EOTS Quick Label form to each layer fields, that you like to
+   label automatically.
+3. Each map canvas relates to a raster timeseries sensor/product and observation date. From that we can derive the following label information:
+
+    ============ ========= ==============
+    Information  Data Type Example
+    ============ ========= ==============
+    Date         String    2014-04-01
+    DOY          Integer
+    Decimal Year Double    2014.234
+    Sensor Name  String    Landsat
+    File Path    String    image/....
+    ============ ========= ==============
+
+
+Labeling Dock
+.............
+
+The Labeling panel can be used to modify vector layers. The editing process is similar to that known from the QGIS
+attribute tables.
+
+1. Use the labeling panels combobox to select the vector layer you like to modify
+
+2. Press the "Start Editing" button
+
+3. Make your changes
+
+4. Save your edits or reject them
+
+
+Toolbar
+.......
+
+
+.. image:: img/changelog.1.0/toolbar.old.png
+
+Old toolbar
+
+.. image:: img/changelog.1.0/toolbar.new.png
+
+New toolbar
+
+The toolbar was enhanced with an button to import vector sources, to select, add and save vector features, and to synchronize
+the map canvas center with that of the QGIS main map canvas.
+
+.. image:: img/changelog.1.0/select_features.png
+
+Map Views
+.........
+
+.. image:: img/changelog.1.0/mapviewcontrolldock.new.png
+
+The map view control panel has been reorganized based on the [QToolBox](https://doc.qt.io/qt-5/qtoolbox.html#details) widget.
+This way fix a couple of layout issues, where map view settings looked squeezed. Each
+Map View has now its own map layer tree to specify map layer visibility.
+
+
+Time Series Model
+.................
+
+.. image:: img/changelog.1.0/timeseriessources.new.png
+
+The multi-sensor time series allows to add multiple images with same sensor properties and observation date.
+
+
+Version 0.8
+-----------
+
+- increased version to 0.8
+- added labeling panel
+- scheduled map canvas refreshes
+- multiple images per observationdata & sensor
+- fixed several bugs
+- uses QgsTaskManager for background loading
+- own QgsMapLayerStore to not mix-up with (main) QGIS layers
+
+Version 0.7
+-----------
+
+- Visualization of images with stacked temporal information (each band = one observation date)
+- Speclib I/O as CSV or ENVI-Spectral Library + CSV table for attributes
+- temporary VRTs now created in-memory (gdal VSI mechanism) instead in a disk temp path
+
+fixed bugs:
+        - Spectral Library: profile coordinate now in center of map pixel (issue #66)
+        - Save map canvas to clipboard
+        - Width of plot lines now scale-independent (issue #64, QPen.setCosmetic(True))
+        - adding fields to spectral library (issue #61)
+
+Version 0.6
+-----------
+
+SpectralLibrary Module
+......................
+
+- now based on in-memory QgsVectorLayer
+- Locations and values of spectral profile can be exported as vector data set
+- Locations of spectral profiles can be rendered on MapCanvases
+
+Temporal Profile Module
+.......................
+
+- now based on in-memory QgsVectorLayer
+- Locations of temporal profiles can be exported as vector data set
+- Band values of temporal profiles can be exported as CSV file
+- Locations of temporal profiles can be rendered on MapCanvases
+- several bug fixes
+
+Version 0.5 and before
+----------------------
+
+- increased version to 0.5
+- ported to QGIS 3, Qt5 and Python 3.6
+- improvements in temporal profile visualization
+- removed several bug
+- visibility of vector and raster layers can be toggled per map view
+- improved interaction between QGIS and EOTSV (Buttons to import/export spatial extent of map canvas or center)
+
+2018-03-29
+- improved definition of individual 2D / 3D charts per sensor & pixel-location
+- added based OpenGL based 3D plot features (axis, grids, labels)
+- changed name to "EO Time Series Viewer" (EOTSV)
+
+2018-02-11
+    - merged updates to temporal profile visualization, e.g.
+      save temporal profiles, compare 2D profiles between different location, experimental 3D visualization
+
+2018-01-31
+    - added file filters for OpenFileDialog
+
+2018-01-19
+    - initialized Sphinx-based documentation
+    - improved map visualization + map settings
+
+2017-05-21:
+    - many changes, done in development branch "develop",
+    - e.g: QGIS MapCanvases for interactive maps, temporal profiles, ...
+
+2017-02-14:
+    - first setup for test users in the recent development branch
+
+
+
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 3651b68090ad7a43a8d6b854f514a2efa2f537dd..38581fb96baff9ad6a1a17b913389d7bad9b27c6 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -6,22 +6,14 @@
 EO Time Series Viewer
 ======================
 
-**Welcome to the EO Time Series Viewer Documentation!**
-
-
-About
------
-
-The Earth Observation (EO) Time Series Viewer is a QGIS Plugin to visualize raster based earth observation time series data.
-
-Its major aims are:
+.. image:: img/screenshot1.png
 
-* an integrated visualization and labeling of multi-sensor remote-sensing time-series data, based on `QGIS <http://www.qgis.org>`_
-* to minimize the user-interaction ("mouse-clicks") required to optimize different ways of data representation.
-* an (almost) platform independent installation
 
-.. image:: img/screenshot1.png
+The Earth Observation Time Series Viewer (EOTSV) is a free-and-open source QGIS Plugin to visualize raster-based earth observation time series data.
 
+* `Online documentation https://eo-time-series-viewer.readthedocs.io/en/latest/ <https://eo-time-series-viewer.readthedocs.io/en/latest/>`_
+* `Source Code https://bitbucket.org/jakimowb/eo-time-series-viewer <https://bitbucket.org/jakimowb/eo-time-series-viewer>`_
+* `Issue tracker https://bitbucket.org/jakimowb/eo-time-series-viewer/issues <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues?status=new&status=open>`_
 
 
 Features
@@ -35,19 +27,6 @@ Features
 * Spectral-temporal ("time profile") visualisation shows raw or scaled, sensor specific band values.
 
 
-Missing Features / Outlook
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-* a lot of debugging, making small errors gone.
-* 3D plotting for spectral-temporal surfaces
-* export temporal profiles
-
-Feedback
-~~~~~~~~
-
-Your feedback (wishes, comments, bugs, ...) is always welcome. Add it to the `issue section <https://bitbucket.org/jakimowb/eo-time-series-viewer/issues?status=new&status=open>`_
-or send me an email `benjamin.jakimow@geo.hu-berlin.de <benjamin.jakimow@geo.hu-berlin.de>`_.
-
 
 .. seealso:: `EnMAP Box 3 <https://bitbucket.org/hu-geomatics/enmap-box/wiki/Home>`_ - Another QGIS Plugin developed at Humboldt-Universität zu Berlin
 
@@ -57,16 +36,17 @@ License and Use
 
 This program is free software; you can redistribute it and/or modify it under the terms of the `GNU General Public License Version 3 (GNU GPL-3) <https://www.gnu.org/licenses/gpl-3.0.en.html>`_ , as published by the Free Software Foundation. See also :ref:`License`.
 
+.. note that changelog.rst is autogenerated!!!
 
 ..  toctree::
     :maxdepth: 3
     :caption: Contents:
 
-    news.rst
     installation.rst
     User Guide <user_guide.rst>
-    gallery.rst
+    Visual Changelog <changelog_visual.rst>
     Changelog <changelog.rst>
+    gallery.rst
     License <LICENSE.md>
 
 
diff --git a/doc/source/news.rst b/doc/source/news.rst
deleted file mode 100644
index 312b6cb246ff849f8d7091f9b56d8e79e691eb5b..0000000000000000000000000000000000000000
--- a/doc/source/news.rst
+++ /dev/null
@@ -1,72 +0,0 @@
-====
-News
-====
-
-
-2019-05-31:
-
-    * increased version to 1.2
-    * Added menu option to export all maps as image files.
-
-2019-05-24
-
-    * increased version to 1.1
-    * dates of visible map canvases are highlighted in the time series tree
-
-2019-05-15:
-
-    * Major update: released version 1.0 with many new features:
-    * labeling tools to modify vector layers.
-    * quick labeling for time-labels information
-    * synchronization with QGIS Map canvas center
-    * SpectralLibrary can import SpectralProfiles from a raster image based on vector positions
-    * simplified MapView control dock, each MapView has it's own layer tree.
-    * improved MapTool organization
-    * removed PyQtGraph from list of required external python packages, no need to run a pip installation first
-
-2019-03-01:
-
-    * increased version to 0.8
-    * several bug fixes
-    * ready for QGIS 3.6 (at least for windows versions)
-
-
-2018-06-04:
-    * increased version to 0.6
-    * SpectralLibrary Module
-
-        - now based on in-memory QgsVectorLayer
-        - Locations and values of spectral profile can be exported as vector data set
-        - Locations of spectral profiles can be rendered on MapCanvases
-
-    * Temporal Profile Module
-
-        - now based on in-memory QgsVectorLayer
-        - Locations of temporal profiles can be exported as vector data set
-        - Band values of temporal profiles can be exported as CSV file
-        - Locations of temporal profiles can be rendered on MapCanvases
-    * several bug fixes
-
-2018-04-17:
-    * Increased version to 0.5, ported to QGIS 3, Qt5 and Python 3.6.
-    * Improvements in temporal profile visualization.
-    * Removed several bugs.
-    * Visibility of vector and raster layers can be toggled per map view.
-    * Improved interaction between QGIS and EOTSV (Buttons to import/export spatial extent of map canvas or center)
-
-**2018-03-29:** Improved definition of individual 2D / 3D charts per sensor & pixel-location added based OpenGL based 3D
-plot features (axis, grids, labels) changed name to "EO Time Series Viewer" (EOTSV)
-
-**2018-02-11:** Merged updates to temporal profile visualization, e.g. save temporal profiles, compare 2D profiles between
-different location, experimental 3D visualization.
-
-**2018-01-19:** Re-written dialog to configure map visualizations ("Map Views"), Vector & Raster layers can be hidden.
-Initialized Sphinx-based documentation.
-
-**2017-06-27:** `Poster <https://bitbucket.org/jakimowb/eo-time-series-viewer/downloads/Jakimow.et.al.TimeSeriesViewer.pdf>`_ & demonstration at `Multitemp 2017, Brugges, Belgium <https://multitemp2017.vito.be>`_.
-
-**2017-05-21:** many changes, done in development branch "develop", e.g. QGIS MapCanvases for interactive maps, temporal profiles and more.
-
-**2017-02-14:** first setup for test users in the recent development branch qgis_apo
-
-**2016-12-02:** Work on this project continued. During the last months I focused on the `EnMAP-Box <https://bitbucket.org/hu-geomatics/enmap-box>`_ where I gained a lot of experience in using Qt and QGIS API.
\ No newline at end of file
diff --git a/eotimeseriesviewer/main.py b/eotimeseriesviewer/main.py
index af6571f11d568bf3a548fa6955392dea021f6439..5c9b96b04e6e7463b5c978b30a246444576a901e 100644
--- a/eotimeseriesviewer/main.py
+++ b/eotimeseriesviewer/main.py
@@ -59,6 +59,64 @@ EXTRA_SPECLIB_FIELDS = [
 ]
 
 
+class AboutDialogUI(QDialog, loadUI('aboutdialog.ui')):
+    def __init__(self, parent=None):
+        """Constructor."""
+        super(AboutDialogUI, self).__init__(parent)
+        # Set up the user interface from Designer.
+        # After setupUI you can access any designer object by doing
+        # self.<objectname>, and you can use autoconnect slots - see
+        # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
+        # #widgets-and-dialogs-with-auto-connect
+        self.setupUi(self)
+
+        self.init()
+
+    def init(self):
+        self.mTitle = self.windowTitle()
+        self.listWidget.currentItemChanged.connect(lambda: self.setAboutTitle())
+        self.setAboutTitle()
+
+        # page About
+        from eotimeseriesviewer import PATH_LICENSE, __version__, PATH_CHANGELOG, PATH_ABOUT
+        self.labelVersion.setText('{}'.format(__version__))
+
+        def readTextFile(path):
+            if os.path.isfile(path):
+                f = open(path, encoding='utf-8')
+                txt = f.read()
+                f.close()
+            else:
+                txt = 'unable to read {}'.format(path)
+            return txt
+
+        # page Changed
+        self.tbAbout.setHtml(readTextFile(PATH_ABOUT))
+
+        aboutText = readTextFile(PATH_CHANGELOG)
+        urlPrefix = r'https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/'
+        aboutText = re.sub(r'(#(\d+))', r'`#\2 <{}\2>`_'.format(urlPrefix), aboutText)
+        from docutils.core import publish_string
+        aboutHTML = publish_string(aboutText, writer_name='html')
+        self.tbChanges.setText(aboutHTML.decode())
+        self.tbLicense.setText(readTextFile(PATH_LICENSE))
+
+
+    def setAboutTitle(self, suffix=None):
+        item = self.listWidget.currentItem()
+
+        if item:
+            title = '{} | {}'.format(self.mTitle, item.text())
+        else:
+            title = self.mTitle
+        if suffix:
+            title += ' ' + suffix
+        self.setWindowTitle(title)
+
+
+
+
+
 class TimeSeriesViewerUI(QMainWindow,
                          loadUI('timeseriesviewer.ui')):
 
@@ -391,7 +449,6 @@ class TimeSeriesViewer(QgisInterface, QObject):
 
 
         # connect buttons with actions
-        from eotimeseriesviewer.widgets import AboutDialogUI
         self.ui.actionAbout.triggered.connect(lambda: AboutDialogUI(self.ui).exec_())
 
         self.ui.actionSettings.triggered.connect(self.onShowSettingsDialog)
diff --git a/eotimeseriesviewer/ui/aboutdialog.ui b/eotimeseriesviewer/ui/aboutdialog.ui
index d3ab036087c26a71a5e0a46c7751f9143b292e0b..5244898190cf4087d61ac8b7e4e47e6006b81e8a 100644
--- a/eotimeseriesviewer/ui/aboutdialog.ui
+++ b/eotimeseriesviewer/ui/aboutdialog.ui
@@ -189,7 +189,7 @@
           <enum>QFrame::NoFrame</enum>
          </property>
          <property name="currentIndex">
-          <number>0</number>
+          <number>1</number>
          </property>
          <widget class="QWidget" name="pageAbout">
           <property name="sizePolicy">
@@ -410,7 +410,11 @@ p, li { white-space: pre-wrap; }
             <number>0</number>
            </property>
            <item>
-            <widget class="QTextBrowser" name="tbChanges"/>
+            <widget class="QTextBrowser" name="tbChanges">
+             <property name="openExternalLinks">
+              <bool>true</bool>
+             </property>
+            </widget>
            </item>
           </layout>
          </widget>
diff --git a/eotimeseriesviewer/widgets.py b/eotimeseriesviewer/widgets.py
deleted file mode 100644
index 60e3e73f2de210ca2386ba30e72df805407340fa..0000000000000000000000000000000000000000
--- a/eotimeseriesviewer/widgets.py
+++ /dev/null
@@ -1,126 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-/***************************************************************************
-                              EO Time Series Viewer
-                              -------------------
-        begin                : 2017-08-04
-        git sha              : $Format:%H$
-        copyright            : (C) 2017 by HU-Berlin
-        email                : benjamin.jakimow@geo.hu-berlin.de
- ***************************************************************************/
-
-/***************************************************************************
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- ***************************************************************************/
-"""
-# noinspection PyPep8Naming
-
-import os, collections
-from qgis.core import *
-from qgis.gui import *
-from qgis.PyQt.QtWidgets import *
-from qgis.PyQt import uic
-from qgis.PyQt.QtCore import *
-from qgis.PyQt.QtGui import *
-from qgis.PyQt.QtXml import *
-
-
-import sys, re, os, six
-from eotimeseriesviewer import DIR_UI
-from eotimeseriesviewer.utils import jp
-# widgets defined without UI file
-
-from eotimeseriesviewer.utils import loadUIFormClass
-
-
-def maxWidgetSizes(layout, onHint=True):
-    assert isinstance(layout, QBoxLayout)
-
-    p = layout.parentWidget()
-    m = layout.contentsMargins()
-
-    sizeX = 0
-    sizeY = 0
-    horizontal = isinstance(layout, QHBoxLayout)
-
-    for item in [layout.itemAt(i) for i in range(layout.count())]:
-        wid = item.widget()
-        ly = item.layout()
-        if wid:
-            if onHint:
-                s = wid.sizeHint()
-            else:
-                s = wid.size()
-        elif ly:
-            continue
-        else:
-            continue
-        if horizontal:
-            sizeX += s.width() + layout.spacing()
-            sizeY = max([sizeY, s.height()])  + layout.spacing()
-        else:
-            sizeX = max([sizeX, s.width()])  + layout.spacing()
-            sizeY += s.height()  + layout.spacing()
-
-
-    return QSize(sizeX + m.left()+ m.right(),
-                 sizeY + m.top() + m.bottom())
-
-
-
-
-class AboutDialogUI(QDialog, loadUIFormClass(jp(DIR_UI, 'aboutdialog.ui'))):
-    def __init__(self, parent=None):
-        """Constructor."""
-        super(AboutDialogUI, self).__init__(parent)
-        # Set up the user interface from Designer.
-        # After setupUI you can access any designer object by doing
-        # self.<objectname>, and you can use autoconnect slots - see
-        # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
-        # #widgets-and-dialogs-with-auto-connect
-        self.setupUi(self)
-
-        self.init()
-
-    def init(self):
-        self.mTitle = self.windowTitle()
-        self.listWidget.currentItemChanged.connect(lambda: self.setAboutTitle())
-        self.setAboutTitle()
-
-        # page About
-        from eotimeseriesviewer import PATH_LICENSE, __version__, PATH_CHANGELOG, PATH_ABOUT
-        self.labelVersion.setText('{}'.format(__version__))
-
-        def readTextFile(path):
-            if os.path.isfile(path):
-                f = open(path, encoding='utf-8')
-                txt = f.read()
-                f.close()
-            else:
-                txt = 'unable to read {}'.format(path)
-            return txt
-
-        # page Changed
-        self.tbAbout.setHtml(readTextFile(PATH_ABOUT))
-        self.tbChanges.setText(readTextFile(PATH_CHANGELOG))
-        self.tbLicense.setText(readTextFile(PATH_LICENSE))
-
-
-    def setAboutTitle(self, suffix=None):
-        item = self.listWidget.currentItem()
-
-        if item:
-            title = '{} | {}'.format(self.mTitle, item.text())
-        else:
-            title = self.mTitle
-        if suffix:
-            title += ' ' + suffix
-        self.setWindowTitle(title)
-
-
-
diff --git a/make/deploy.py b/make/deploy.py
index b6b442272db90dea50e12a3a759121056938dd24..173526d413da0bd5ea1d26347e9fe35d714afb7a 100644
--- a/make/deploy.py
+++ b/make/deploy.py
@@ -41,10 +41,12 @@ import eotimeseriesviewer
 
 DIR_BUILD = jp(DIR_REPO, 'build')
 DIR_DEPLOY = jp(DIR_REPO, 'deploy')
+DIR_DOC_SOURCE = jp(DIR_REPO, *['doc','source'])
 
 QGIS_MIN = '3.4'
 QGIS_MAX = '3.99'
 PATH_ABOUT_TEXT = jp(DIR_REPO, 'ABOUT_Plugin.html')
+PATH_CHANGELOG = jp(DIR_REPO, 'CHANGELOG')
 
 REPO = git.Repo(DIR_REPO)
 currentBranch = REPO.active_branch.name
@@ -313,6 +315,9 @@ def build():
         f.flush()
         f.close()
 
+    # copy CHANGELOG to doc/source/changelog.rst
+    updateShpinxChangelog()
+
     # 5. create a zip
     print('Create zipfile...')
 
@@ -340,6 +345,22 @@ def build():
 
     print('Finished')
 
+def updateShpinxChangelog():
+    from eotimeseriesviewer import PATH_CHANGELOG
+    with open(PATH_CHANGELOG, 'r') as f:
+        # replace (#1) with (https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/1)
+        urlPrefix = r'https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/'
+        lines = f.readlines()
+        lines = [re.sub(r'(#(\d+))', r'`#\2 <{}\2>`_'.format(urlPrefix), line) for line in lines]
+
+        pathChangelogRst = jp(DIR_DOC_SOURCE, 'changelog.rst')
+
+        with open(pathChangelogRst, 'w', encoding='utf-8') as f2:
+            f2.writelines(lines)
+
+        s = ""
+
+
 
 def updateRepositoryXML(MD:QGISMetadataFileWriter, path:str=None):
     """
@@ -549,5 +570,5 @@ def uploadDeveloperPlugin():
 
 
 if __name__ == "__main__":
-
-    build()
\ No newline at end of file
+    updateShpinxChangelog()
+    #build()
\ No newline at end of file
diff --git a/tests/test_main.py b/tests/test_main.py
index d1924d4779ab1e4d3c9e22669bfcc44b94535792..a91ec3c8eaf63030ce4de1838a24067fb42d0191 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -105,6 +105,17 @@ class TestInit(TestCase):
             QGIS_APP.exec_()
 
 
+    def test_AboutDialog(self):
+
+        from eotimeseriesviewer.main import AboutDialogUI
+
+        dialog = AboutDialogUI()
+        dialog.show()
+        self.assertIsInstance(dialog, QDialog)
+        if SHOW_GUI:
+            QGIS_APP.exec_()
+
+
     def test_exportMapsToImages(self):
 
         from eotimeseriesviewer.main import TimeSeriesViewer, SaveAllMapsDialog