diff --git a/Simulation/Aivika/Experiment/Chart/Backend/Diagrams.hs b/Simulation/Aivika/Experiment/Chart/Backend/Diagrams.hs
new file mode 100644
--- /dev/null
+++ b/Simulation/Aivika/Experiment/Chart/Backend/Diagrams.hs
@@ -0,0 +1,55 @@
+
+{-# LANGUAGE MultiParamTypeClasses #-}
+
+-- |
+-- Module     : Simulation.Aivika.Experiment.Chart.Backend.Diagrams
+-- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- License    : BSD3
+-- Maintainer : David Sorokin <david.sorokin@gmail.com>
+-- Stability  : experimental
+-- Tested with: GHC 7.8.3
+--
+-- This module defines a renderer that uses the Chart-diagrams library
+-- for rendering charts within simulation, i.e. without using Cairo,
+-- which can be suitable for MS Windows.
+--
+
+module Simulation.Aivika.Experiment.Chart.Backend.Diagrams
+       (DiagramsRenderer(..)) where
+
+import System.FilePath
+import Data.Map
+
+import Graphics.Rendering.Chart
+import Graphics.Rendering.Chart.Backend.Diagrams
+
+import Simulation.Aivika.Experiment
+import Simulation.Aivika.Experiment.Chart
+
+-- | This renderer uses the Chart-diagrams library for rendering charts within simulation.
+data DiagramsRenderer =
+  DiagramsRenderer { rendererFileFormat :: FileFormat,
+                     -- ^ It returns the file format used for saving the image.
+                     rendererCustomFonts :: Map (String, FontSlant, FontWeight) FilePath
+                     -- ^ It contains the custom fonts.
+                   }
+
+-- | The class of the Diagrams-based renderers is a sub-class of the charting renderers.
+class WebPageCharting r => DiagramsRendering r
+
+instance ExperimentRendering DiagramsRenderer WebPageWriter where
+
+  renderExperiment e r = renderExperiment e WebPageRenderer
+
+instance WebPageRendering DiagramsRenderer
+
+instance WebPageCharting DiagramsRenderer where
+
+  renderableChartExtension (DiagramsRenderer EPS _) = ".eps"
+  renderableChartExtension (DiagramsRenderer SVG _) = ".svg"
+  renderableChartExtension (DiagramsRenderer SVG_EMBEDDED _)  = ".svg"
+  
+  renderChart (DiagramsRenderer format fonts) (width, height) =
+    renderableToFile (FileOptions (fromIntegral width, fromIntegral height) format fonts)
+
+instance DiagramsRendering DiagramsRenderer
diff --git a/Simulation/Aivika/Experiment/DiagramsRenderer.hs b/Simulation/Aivika/Experiment/DiagramsRenderer.hs
deleted file mode 100644
--- a/Simulation/Aivika/Experiment/DiagramsRenderer.hs
+++ /dev/null
@@ -1,44 +0,0 @@
-
--- |
--- Module     : Simulation.Aivika.Experiment.DiagramsRenderer
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
--- License    : BSD3
--- Maintainer : David Sorokin <david.sorokin@gmail.com>
--- Stability  : experimental
--- Tested with: GHC 7.6.3
---
--- This module defines a renderer that uses the Chart-diagrams library
--- for rendering charts with simulation results, i.e. without using Cairo,
--- which can be suitable for MS Windows.
---
-
-module Simulation.Aivika.Experiment.DiagramsRenderer
-       (DiagramsRenderer(..)) where
-
-import System.FilePath
-import Data.Map
-
-import Graphics.Rendering.Chart
-import Graphics.Rendering.Chart.Backend.Diagrams
-
-import Simulation.Aivika.Experiment
-import Simulation.Aivika.Experiment.Chart
-
--- | This renderer uses the Chart-diagrams library for rendering charts with simulation results.
-data DiagramsRenderer =
-  DiagramsRenderer { rendererFileFormat :: FileFormat,
-                     -- ^ It returns the file format used for saving the image.
-                     rendererCustomFonts :: Map (String, FontSlant, FontWeight) FilePath
-                     -- ^ It contains the custom fonts.
-                   }
-
-instance FileRenderer DiagramsRenderer
-
-instance ChartRenderer DiagramsRenderer where
-
-  renderableFileExtension (DiagramsRenderer EPS _) = ".eps"
-  renderableFileExtension (DiagramsRenderer SVG _) = ".svg"
-  renderableFileExtension (DiagramsRenderer SVG_EMBEDDED _)  = ".svg"
-  
-  renderChart (DiagramsRenderer format fonts) (width, height) =
-    flip $ renderableToFile (FileOptions (fromIntegral width, fromIntegral height) format fonts)
diff --git a/aivika-experiment-diagrams.cabal b/aivika-experiment-diagrams.cabal
--- a/aivika-experiment-diagrams.cabal
+++ b/aivika-experiment-diagrams.cabal
@@ -1,5 +1,5 @@
 name:            aivika-experiment-diagrams
-version:         1.3.1
+version:         1.4
 synopsis:        Diagrams backend for the Aivika simulation library
 description:
     This package complements the Aivika and Aivika Experiment packages 
@@ -15,19 +15,21 @@
 homepage:        http://github.com/dsorokin/aivika-experiment-diagrams
 cabal-version:   >= 1.6
 build-type:      Simple
-tested-with:     GHC == 7.6.3
+tested-with:     GHC == 7.8.3
 
 library
 
-    exposed-modules: Simulation.Aivika.Experiment.DiagramsRenderer
+    exposed-modules: Simulation.Aivika.Experiment.Chart.Backend.Diagrams
 
     build-depends:   base >= 3 && < 6,
                      containers >= 0.4.0.0,
                      filepath >= 1.3.0.0,
                      Chart >= 1.3.1,
                      Chart-diagrams >= 1.3.1,
-                     aivika-experiment >= 1.3,
-                     aivika-experiment-chart >= 1.3
+                     aivika-experiment >= 1.4,
+                     aivika-experiment-chart >= 1.4
+
+    extensions:      MultiParamTypeClasses
 
     ghc-options:     -O2
 
