diff --git a/ivette/.eslintrc.js b/ivette/.eslintrc.js
index 7d1798cfb90ad18e1d1702b6662b11d21b9a2b1d..caf5fc6d1f5b4272de33915d69a7754bea163bdd 100644
--- a/ivette/.eslintrc.js
+++ b/ivette/.eslintrc.js
@@ -39,8 +39,8 @@ module.exports = {
     "no-underscore-dangle": "off",
     // Allow return statements even if not strictly needed
     "no-useless-return": "off",
-    // Just warn about shadowing concerning variables
-    "no-shadow": "warn",
+    // Disable warn about shadowing concerning variables
+    "no-shadow": "off",
     "lines-between-class-members": [
       "error", "always", { "exceptAfterSingleLine": true }
     ],
@@ -65,4 +65,4 @@ module.exports = {
     // Allow console errors and warnings
     "no-console": ["error", { allow: ["warn", "error"] }],
   }
-};
\ No newline at end of file
+};
diff --git a/ivette/Makefile b/ivette/Makefile
index 4de47987040331f9a27fe4808f179ddbc38def77..f35ed4b14a9fd664f70659c4628074f76c7446b7 100644
--- a/ivette/Makefile
+++ b/ivette/Makefile
@@ -16,11 +16,11 @@ app: dome-app
 dev: dome-dev
 dist: dome-dist
 
-typecheck:
+typecheck: dome-templ
 	@echo "[Ivette] running ts typechecker"
 	yarn run typecheck
 
-lint:
+lint: dome-templ
 	@echo "[Ivette] running ts linter"
 	yarn run lint
 
diff --git a/ivette/README.md b/ivette/README.md
index 584760847f04c0e603effac7e839ddb88ee4f095..1c38042881e4dbf21e7724a716159cec0a8ae78b 100644
--- a/ivette/README.md
+++ b/ivette/README.md
@@ -16,6 +16,15 @@ and `web-mode` for `*.tsx` files.
 
 VS-Code is also known to work out of the box.
 
+## Coding Guidelines
+
+- per-directory `style.css` for CSS;
+- caml-cased file names for typescript modules;
+- indentation based on 2 spaces, no tabs;
+- caml-case identifiers for exported members;
+- no `export default` for libs, individual exports only;
+- prefer use of `import * as AbcDef from '<path>/AbcDef'`;
+
 ## Mirroring to Dome/Electron
 
 The content of ./src/dome shall be kept in sync with
diff --git a/ivette/src/dome/src/main/dome.js b/ivette/src/dome/src/main/dome.js
index 104e7cc24c68ab525e6f5cc0c368abcfc25e5311..6aa043b842e613d3ab64a75a8981b3d3d777c734 100644
--- a/ivette/src/dome/src/main/dome.js
+++ b/ivette/src/dome/src/main/dome.js
@@ -9,22 +9,17 @@
 
    @example
    // src/main/index.js:
-   import Dome from 'dome' ;
+   import * as Dome from 'dome' ;
    Dome.start();
 */
 
-import {
-  app,
-  ipcMain,
-  BrowserWindow
-} from 'electron' ;
-
 import _ from 'lodash' ;
 import fs from 'fs' ;
 import path from 'path' ;
-import Menubar from './menubar.js' ;
-import System from 'dome/system' ;
+import { app, ipcMain, BrowserWindow } from 'electron' ;
 import installExtension , { REACT_DEVELOPER_TOOLS } from 'dome/devtools' ;
+import * as Menubar from './menubar.js' ;
+import SYS, * as System from 'dome/system' ;
 
 // --------------------------------------------------------------------------
 // --- System Helpers
@@ -205,8 +200,8 @@ function createBrowserWindow( config, isMain=true )
 {
 
   const argv = isMain
-        ? System.WINDOW_APPLICATION_ARGV
-        : System.WINDOW_PREFERENCES_ARGV ;
+        ? SYS.WINDOW_APPLICATION_ARGV
+        : SYS.WINDOW_PREFERENCES_ARGV ;
 
   const options = _.merge(
     {
@@ -490,17 +485,3 @@ ipcMain.on( 'dome.ipc.menu.addmenuitem' , addMenuItem );
 ipcMain.on( 'dome.ipc.menu.setmenuitem' , setMenuItem );
 
 // --------------------------------------------------------------------------
-// --- Export Default
-// --------------------------------------------------------------------------
-
-export default {
-  platform,
-  DEVEL,
-  setName,
-  start,
-  addMenu,
-  addMenuItem,
-  setMenuItem
-} ;
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/main/menubar.js b/ivette/src/dome/src/main/menubar.js
index d1aa40fddb6217bb84af427e8c48c5f23f588c6e..8435e522ff4fa418c7ebdc04f361cde493890b83 100644
--- a/ivette/src/dome/src/main/menubar.js
+++ b/ivette/src/dome/src/main/menubar.js
@@ -3,7 +3,7 @@
 // --------------------------------------------------------------------------
 
 import { app, BrowserWindow, Menu, MenuItem, shell } from 'electron' ;
-import System from 'dome/system' ;
+import * as System from 'dome/system' ;
 
 // --------------------------------------------------------------------------
 // --- Special Callbacks
@@ -374,6 +374,7 @@ function registerCustomItems( menu ) {
   });
 }
 
+// Initialize the menubar machinery
 export function install() {
   updateRequired = true;
   updateTriggered = false;
@@ -393,14 +394,3 @@ function reset() {
 }
 
 // --------------------------------------------------------------------------
-// --- Export Default
-// --------------------------------------------------------------------------
-
-export default {
-  install,
-  addMenu,
-  addMenuItem,
-  setMenuItem
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/misc/events.js b/ivette/src/dome/src/misc/layout.js
similarity index 86%
rename from ivette/src/dome/src/misc/events.js
rename to ivette/src/dome/src/misc/layout.js
index 16c0b380da32541801b4d3873c351045ef3128ad..a7294351edbfdf0d03db5876af06e12187fb4960 100644
--- a/ivette/src/dome/src/misc/events.js
+++ b/ivette/src/dome/src/misc/layout.js
@@ -3,7 +3,6 @@
 // --------------------------------------------------------------------------
 
 import React from 'react' ;
-import Props from 'prop-types' ;
 
 const SIZED = {
   display: 'block',
@@ -70,12 +69,3 @@ export class Layout extends React.Component {
 }
 
 // --------------------------------------------------------------------------
-// --- Props & Defaults
-// --------------------------------------------------------------------------
-
-Layout.propTypes = { onResize: Props.func };
-Layout.defaultProps = { };
-
-export default { Layout };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/misc/register.js b/ivette/src/dome/src/misc/register.js
index 17d3be008b3d659a052fb754d9578d4599cdc2ff..ceeba36f4e8ce074d0503f212f2f50095af4189e 100644
--- a/ivette/src/dome/src/misc/register.js
+++ b/ivette/src/dome/src/misc/register.js
@@ -2,8 +2,8 @@
 // --- Dome Classes
 // --------------------------------------------------------------------------
 
-import React from 'react' ;
 import _ from 'lodash' ;
+import React from 'react' ;
 
 // --------------------------------------------------------------------------
 // --- Register a Dome Class
@@ -94,7 +94,3 @@ export function dispatch(children,filter)
 }
 
 // --------------------------------------------------------------------------
-
-export default { register , classOf , dispatch };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/misc/system.js b/ivette/src/dome/src/misc/system.js
index 0e609adc0f9d521e6fa7b34472dc1c6b4d0f3286..f246c2c372fd2145d9a2cc9b35ef7e9f2c06edd1 100644
--- a/ivette/src/dome/src/misc/system.js
+++ b/ivette/src/dome/src/misc/system.js
@@ -103,12 +103,12 @@ export function doExit() {
 // --- Command Line Arguments
 // --------------------------------------------------------------------------
 
-var command_wdir = undefined ;
-var command_argv = undefined ;
+var COMMAND_WDIR = undefined ;
+var COMMAND_ARGV = undefined ;
 
-function setCommand(argv,wdir) {
-  command_argv = argv ;
-  command_wdir = wdir ;
+function SET_COMMAND(argv,wdir) {
+  COMMAND_ARGV = argv ;
+  COMMAND_WDIR = wdir ;
 }
 
 // --------------------------------------------------------------------------
@@ -141,7 +141,7 @@ export function getDownloads() { return appProxy.getPath('downloads'); }
 
    See also [Dome.onCommand](dome_.html#.onCommand) event handler.
 */
-export function getWorkingDir() { return command_wdir; }
+export function getWorkingDir() { return COMMAND_WDIR; }
 
 /**
    @summary Returns the current process ID.
@@ -160,7 +160,7 @@ export function getPID() { return process.pid; }
 
    See also [Dome.onCommand](dome_.html#.onCommand) event handler.
 */
-export function getArguments() { return command_argv; }
+export function getArguments() { return COMMAND_ARGV; }
 
 /** @summary Returns static assets.
     @param {string} [...path] - a sequecne of path segments
@@ -629,30 +629,11 @@ const WINDOW_APPLICATION_ARGV = '--dome-application-window' ;
 const WINDOW_PREFERENCES_ARGV = '--dome-preferences-window' ;
 
 // --------------------------------------------------------------------------
-// --- Export Default
+// --- Only used for inter-module initialisation
 // --------------------------------------------------------------------------
 
 export default {
-  platform,
-  DEVEL,
-  atExit,
-  atExitForEach,
-  doExit,
-  getHome,
-  getDesktop,
-  getDocuments,
-  getDownloads,
-  getWorkingDir,
-  getArguments,
-  getStatic,
-  getPID,
-  join, resolve, dirname, basename, extname,
-  fileStat,
-  isFile, readFile, writeFile, copyFile,
-  isDirectory, readDir, mkDir, rmDir,
-  rename, remove, exists,
-  spawn,
-  setCommand,
+  SET_COMMAND,
   WINDOW_APPLICATION_ARGV,
   WINDOW_PREFERENCES_ARGV
 };
diff --git a/ivette/src/dome/src/renderer/controls/buttons.js b/ivette/src/dome/src/renderer/controls/buttons.js
index de0d4d2aecac192fd979a394cd6ddd998826bfe6..bd4957cbfabe77fcb7f3a87a23224ecc8955728e 100644
--- a/ivette/src/dome/src/renderer/controls/buttons.js
+++ b/ivette/src/dome/src/renderer/controls/buttons.js
@@ -535,14 +535,3 @@ export const Field = (props) => {
 };
 
 // --------------------------------------------------------------------------
-// --- Exports
-// --------------------------------------------------------------------------
-
-export default {
-  LCD, LED,
-  Button, CircButton, IconButton,
-  Switch, Checkbox, Radio, RadioGroup,
-  Select
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/controls/icons.js b/ivette/src/dome/src/renderer/controls/icons.js
index 7e87642803991afe49a777cf52dfb5d35fefb08d..d5ad8e7a626395b9e0b29730001a0d73e672e852 100644
--- a/ivette/src/dome/src/renderer/controls/icons.js
+++ b/ivette/src/dome/src/renderer/controls/icons.js
@@ -126,7 +126,6 @@ export function Badge( { value, title, onClick } )
    - `section`: section of the Icons (optional)
    - `viewBox`: svg view-box property (optional, `"0 0 24 24"` by default)
 */
-
 export function register(icon) {
   const { name , ...deficon } = icon ;
   if (!name) console.error(`[Dome] Icon has no name (skipped).`);
@@ -140,7 +139,6 @@ export function register(icon) {
    @description
    See [register](#.register) for properties of the icon objects.
 */
-
 export function forEach(job) {
   for( var name in Icons ) {
     job( Object.assign( { name } , Icons[name] ));
@@ -148,7 +146,3 @@ export function forEach(job) {
 }
 
 // --------------------------------------------------------------------------
-
-export default { Icon , Badge, SVG, register , forEach } ;
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/controls/labels.js b/ivette/src/dome/src/renderer/controls/labels.js
index 22b5d5f542fd302cb737eba35063484b372c973b..8045b597086c205e1abb2942506934a227c2766b 100644
--- a/ivette/src/dome/src/renderer/controls/labels.js
+++ b/ivette/src/dome/src/renderer/controls/labels.js
@@ -5,8 +5,8 @@
 /** @module dome/controls/labels */
 
 import React from 'react' ;
-import labels from './labels.css' ;
 import { Icon } from './icons' ;
+import './labels.css' ;
 
 // --------------------------------------------------------------------------
 // --- Generic Label
diff --git a/ivette/src/dome/src/renderer/data.js b/ivette/src/dome/src/renderer/data.js
index 1d44762618f425bfe365361c40f9be9155aedea2..8265985149388b4d948586f91a4f286e8e703b43 100644
--- a/ivette/src/dome/src/renderer/data.js
+++ b/ivette/src/dome/src/renderer/data.js
@@ -89,10 +89,9 @@ As an example of use, the introductory example can be implemented as follows:
 
 import _ from 'lodash' ;
 import React from 'react';
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 import EventEmitter from 'events' ;
 
-
 // --------------------------------------------------------------------------
 // --- Libraries
 // --------------------------------------------------------------------------
@@ -396,14 +395,3 @@ export const Fragment = ({lib:localLib, order, enabled=true, disabled=false, chi
 };
 
 // --------------------------------------------------------------------------
-// --- Exports
-// --------------------------------------------------------------------------
-
-export default {
-  Library,
-  createLibrary, useLibrary,
-  useCurrentLibrary, useLocalLibrary,
-  Item, Component, Node, Fragment
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/dialogs.js b/ivette/src/dome/src/renderer/dialogs.js
index 92f5416323cb2bc9d8c3ebd7219db61ca5519da4..f76515e4587052f0d75d360aff2456cb7eff1335 100644
--- a/ivette/src/dome/src/renderer/dialogs.js
+++ b/ivette/src/dome/src/renderer/dialogs.js
@@ -4,8 +4,9 @@
    Various kind of (modal) dialogs attached to the main application window.
  */
 
+import filepath from 'path' ;
 import { remote } from 'electron' ;
-import System from 'dome/system' ;
+import * as System from 'dome/system' ;
 
 // --------------------------------------------------------------------------
 // --- Message Box
@@ -106,7 +107,6 @@ export function showMessageBox( options )
 // --- openFile dialog
 // --------------------------------------------------------------------------
 
-import filepath from 'path' ;
 const defaultPath = (path) => filepath.extname(path) ? filepath.dirname(path) : path ;
 
 /**
@@ -304,15 +304,3 @@ export function showOpenDir( options )
 }
 
 // --------------------------------------------------------------------------
-// --- Export
-// --------------------------------------------------------------------------
-
-export default {
-  showMessageBox,
-  showOpenFile,
-  showOpenFiles,
-  showSaveFile,
-  showOpenDir
-} ;
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/dnd.js b/ivette/src/dome/src/renderer/dnd.js
index ffb3688128997c0fb09067c2dca3c2ad62e76b2a..74aa1755bbab4081c6c4c5d1574b3f4f4cf5cf8f 100644
--- a/ivette/src/dome/src/renderer/dnd.js
+++ b/ivette/src/dome/src/renderer/dnd.js
@@ -106,9 +106,9 @@ updates from all participants merged in.
 
 */
 
+import _ from 'lodash' ;
 import React from 'react' ;
 import Draggable, { DraggableCore } from 'react-draggable';
-import _ from 'lodash' ;
 
 const HOLD_TIME = 100 ; /* time in ms */
 const HOLD_FIRE = 6 ;   /* number of HOLD_TIME before « hold » */
@@ -849,11 +849,3 @@ export class DropTarget extends React.Component
 }
 
 // --------------------------------------------------------------------------
-// --- Export
-// --------------------------------------------------------------------------
-
-export default {
-  DnD, DragSource, DropTarget, dispatchEvent
-} ;
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/dome.js b/ivette/src/dome/src/renderer/dome.js
index 322257c62587ae45744e4eee0f47106d935aeaef..b5bb2dff23486099c2b6ecd4cc9f60a2158f477a 100644
--- a/ivette/src/dome/src/renderer/dome.js
+++ b/ivette/src/dome/src/renderer/dome.js
@@ -8,7 +8,6 @@
    and its interaction with the main process.
 
    @example // File 'src/renderer/index.js':
-   import Dome from 'dome';
    import Application from './Application.js' ;
    Dome.setContent( Application );
  */
@@ -18,7 +17,8 @@ import React from 'react';
 import ReactDOM from 'react-dom';
 import { AppContainer } from 'react-hot-loader' ;
 import { remote , ipcRenderer } from 'electron';
-import System from 'dome/system' ;
+import { EventEmitter } from 'events' ;
+import SYS , * as System from 'dome/system' ;
 import './dome.css' ;
 
 // --------------------------------------------------------------------------
@@ -58,8 +58,6 @@ export const platform = System.platform ;
 // --- Application Emitter
 // --------------------------------------------------------------------------
 
-import { EventEmitter } from 'events' ;
-
 /** @summary Application Emitter.
     @description
     Can be used as a basic _Flux_ dispatcher. */
@@ -137,7 +135,7 @@ export function onCommand(job) { emitter.on('dome.command',job); }
 
 ipcRenderer.on('dome.ipc.reload',() => emitter.emit('dome.reload'));
 ipcRenderer.on('dome.ipc.command', (_event,argv,wdir) => {
-  System.setCommand(argv,wdir);
+  SYS.SET_COMMAND(argv,wdir);
   emitter.emit('dome.command',argv,wdir);
 });
 
@@ -151,12 +149,12 @@ ipcRenderer.on('dome.ipc.command', (_event,argv,wdir) => {
 
 export function isApplicationWindow()
 {
-  return process.argv.includes( System.WINDOW_APPLICATION_ARGV );
+  return process.argv.includes( SYS.WINDOW_APPLICATION_ARGV );
 }
 
 export function isPreferencesWindow()
 {
-  return process.argv.includes( System.WINDOW_PREFERENCES_ARGV );
+  return process.argv.includes( SYS.WINDOW_PREFERENCES_ARGV );
 }
 
 // --------------------------------------------------------------------------
@@ -1030,32 +1028,3 @@ export function useClock(period,initStart)
 }
 
 // --------------------------------------------------------------------------
-// --- Export
-// --------------------------------------------------------------------------
-
-export default {
-  platform,
-  DEVEL,
-  setTitle,
-  setModified,
-  isApplicationWindow, setApplicationWindow,
-  isPreferencesWindow, setPreferencesWindow,
-  isFocused,
-  emitter, emit, on, off,
-  addMenu,
-  addMenuItem,
-  setMenuItem,
-  popupMenu,
-  setWindowSetting, getWindowSetting,
-  setGlobalSetting, getGlobalSetting,
-  update,  onUpdate, onReload, onCommand,
-  State, Render,
-  useForceUpdate,
-  useUpdate, useEvent, useEmitter,
-  useCommand, useClock,
-  useState, useSwitch,
-  useHistory,
-  useGlobalSetting
-} ;
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/boxes.js b/ivette/src/dome/src/renderer/layout/boxes.js
index 5719f246a0f2498fb8b3469f920e7aa265d2d918..1d9962523660cabbe561234cb1337e23dbe617d0 100644
--- a/ivette/src/dome/src/renderer/layout/boxes.js
+++ b/ivette/src/dome/src/renderer/layout/boxes.js
@@ -40,7 +40,7 @@ natively, place it inside a `<Scroll/>` sub-container.
 */
 
 import React from 'react';
-import Dome from 'dome';
+import * as Dome from 'dome';
 import { Title } from 'dome/controls/labels' ;
 import './boxes.css' ;
 
@@ -184,8 +184,3 @@ export const Folder =
 };
 
 // --------------------------------------------------------------------------
-
-export default { Hpack, Vpack, Hbox, Vbox, Hfill, Vfill,
-                 Space, Filler, Scroll, Grid, Folder };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/dispatch.js b/ivette/src/dome/src/renderer/layout/dispatch.js
index c1953f8c53a29a28a83374cfebbf854e0333837b..3ab66aeeb6f6afd544249cf6a02d2db25d3f2dc3 100644
--- a/ivette/src/dome/src/renderer/layout/dispatch.js
+++ b/ivette/src/dome/src/renderer/layout/dispatch.js
@@ -17,7 +17,7 @@ This can be also used to display some item among many in one unique place.
 
 import _ from 'lodash' ;
 import React from 'react';
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 
 // --------------------------------------------------------------------------
 // --- Global Dispatcher
@@ -110,7 +110,3 @@ export function Render({ id, children=null })
 }
 
 // --------------------------------------------------------------------------
-
-export default { Item, Render };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/forms.js b/ivette/src/dome/src/renderer/layout/forms.js
index 81b2edf4b41bc4bf94d06c745306148cbc29c6b4..d054f84db577e35d98943177f92dee7bea5b698b 100644
--- a/ivette/src/dome/src/renderer/layout/forms.js
+++ b/ivette/src/dome/src/renderer/layout/forms.js
@@ -4,11 +4,11 @@
 
 /** @module dome/layout/forms */
 
+import _ from 'lodash' ;
 import React from 'react' ;
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 import { SVG } from 'dome/controls/icons' ;
 import { Checkbox, Radio, Select as Selector } from 'dome/controls/buttons' ;
-import _ from 'lodash' ;
 import './forms.css' ;
 
 // --------------------------------------------------------------------------
@@ -1100,29 +1100,3 @@ export const FieldRadio = ({ label, title, value, ...props }) => {
 };
 
 // --------------------------------------------------------------------------
-// --- Exports
-// --------------------------------------------------------------------------
-
-export default {
-  Select,
-  Form,
-  Block,
-  Field,
-  Section,
-  FieldText,
-  FieldCode,
-  FieldTextArea,
-  FieldCodeArea,
-  FieldNumber,
-  FieldSpinner,
-  FieldSlider,
-  FieldDate,
-  FieldTime,
-  FieldColor,
-  FieldSelect,
-  FieldList,
-  FieldCheckbox,
-  FieldRadio
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/frames.js b/ivette/src/dome/src/renderer/layout/frames.js
index d16aa614cf787a5b170f2a9e9ee4b4bf258ae7bb..68fb995879dda8923570ad4afda19d96e5ce1488 100644
--- a/ivette/src/dome/src/renderer/layout/frames.js
+++ b/ivette/src/dome/src/renderer/layout/frames.js
@@ -5,7 +5,7 @@
 /** @module dome/layout/frames */
 
 import React from 'react' ;
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 import { dispatch } from 'dome/misc/register' ;
 import { Vfill } from 'dome/layout/boxes' ;
 import { SideBar } from 'dome/layout/sidebars' ;
@@ -205,7 +205,3 @@ export class Frame extends React.Component
 }
 
 // --------------------------------------------------------------------------
-
-export default { Frame };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/grids.js b/ivette/src/dome/src/renderer/layout/grids.js
index facd9df969474ab9e63c0988154b818321c1f091..6843f5d0bceee0e84baf7707034f2544541235b2 100644
--- a/ivette/src/dome/src/renderer/layout/grids.js
+++ b/ivette/src/dome/src/renderer/layout/grids.js
@@ -4,12 +4,13 @@
 
 /** @module dome/layout/grids */
 
+import _ from 'lodash' ;
 import React from 'react' ;
-import Dome from 'dome' ;
 import { dispatchEvent, DnD, DragSource, DropTarget } from 'dome/dnd' ;
 import { AutoSizer } from 'react-virtualized' ;
 import { DraggableCore } from 'react-draggable' ;
-import _ from 'lodash' ;
+
+import * as Dome from 'dome' ;
 import './grids.css' ;
 
 // --------------------------------------------------------------------------
@@ -1329,16 +1330,3 @@ export class GridLayout extends React.Component
 }
 
 // --------------------------------------------------------------------------
-// --- Defaults
-// --------------------------------------------------------------------------
-
-export default {
-  GridLayout,
-  GridLayoutCore,
-  GridItem, GridBox, GridHbox, GridVbox,
-  iterShape, getShapeItem, removeShapeItem,
-  stringOfShape,
-  makeChildrenShape
-} ;
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/pages.js b/ivette/src/dome/src/renderer/layout/pages.js
index 9cfa0c6e11c9f02523e3faadcbada26744fef739..a630356d953c8650310ac466f555d7358fac305c 100644
--- a/ivette/src/dome/src/renderer/layout/pages.js
+++ b/ivette/src/dome/src/renderer/layout/pages.js
@@ -71,9 +71,3 @@ export const Note = ({style,children}) => (
 );
 
 // --------------------------------------------------------------------------
-// Export Default
-// --------------------------------------------------------------------------
-
-export default { Page, Note };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/sidebars.js b/ivette/src/dome/src/renderer/layout/sidebars.js
index 29f9c4428a9a5788e68d9a2e6e69afc79292ae4f..862ddd785ab5dc63547ee449a81773b1c2f21319 100644
--- a/ivette/src/dome/src/renderer/layout/sidebars.js
+++ b/ivette/src/dome/src/renderer/layout/sidebars.js
@@ -5,7 +5,7 @@
 /** @module dome/layout/sidebars */
 
 import React from 'react' ;
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 import { Badge } from 'dome/controls/icons' ;
 import { Label } from 'dome/controls/labels' ;
 import './sidebars.css' ;
@@ -208,6 +208,4 @@ register( SideBar, 'DOME_SIDEBAR' );
 register( Section, 'DOME_SIDEBAR_ITEM' );
 register( Item,    'DOME_SIDEBAR_ITEM' );
 
-export default { SideBar, Section, Item } ;
-
 // --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/splitters.js b/ivette/src/dome/src/renderer/layout/splitters.js
index fd3d17c956f7e50190bdc5fa8c6b819f811f46a7..6f947ee2d10b9b168ae543c5ae2b9e44cfab87ad 100644
--- a/ivette/src/dome/src/renderer/layout/splitters.js
+++ b/ivette/src/dome/src/renderer/layout/splitters.js
@@ -4,12 +4,11 @@
 
 /** @module dome/layout/splitters */
 
-import React from 'react' ;
-import Props from 'prop-types' ;
-import Dome from 'dome' ;
-import { Layout } from 'dome/misc/events' ;
-import './splitters.css' ;
 import _ from 'lodash' ;
+import * as React from 'react' ;
+import * as Dome from 'dome' ;
+import { Layout } from 'dome/misc/layout' ;
+import './splitters.css' ;
 
 // --------------------------------------------------------------------------
 // --- Splitter Layout
@@ -132,7 +131,6 @@ const LR = {
    the left and bottom sides of the views are likely to be cropped.
 
 */
-
 export class Splitter extends React.Component {
 
   // --------------------------------------------------------------------------
@@ -368,22 +366,31 @@ export class Splitter extends React.Component {
 }
 
 // --------------------------------------------------------------------------
-// --- Props & Defaults
+// --- Short Cuts
 // --------------------------------------------------------------------------
 
-Splitter.propTypes = {
-  dir: Props.oneOf(['HORIZONTAL','VERTICAL','LEFT','RIGHT','TOP','BOTTOM']),
-  settings: Props.string,
-  margin: Props.number
-};
+/** @summary Splitter with `dir="HORIZONTAL"`. */
+export const HSplit =
+  ({ children, ...props }) => <Splitter dir="HORIZONTAL" {...props}>{children}</Splitter>;
 
-Splitter.defaultProps = {
-  dir: 'HORIZONTAL',
-  margin: 32
-};
+/** @summary Splitter with `dir="VERTICAL"`. */
+export const VSplit =
+  ({ children, ...props }) => <Splitter dir="VERTICAL" {...props}>{children}</Splitter>;
 
-// --------------------------------------------------------------------------
+/** @summary Splitter with `dir="TOP"`. */
+export const TSplit =
+  ({ children, ...props }) => <Splitter dir="TOP" {...props}>{children}</Splitter>;
+
+/** @summary Splitter with `dir="BOTTOM"`. */
+export const BSplit =
+  ({ children, ...props }) => <Splitter dir="BOTTOM" {...props}>{children}</Splitter>;
+
+/** @summary Splitter with `dir="LEFT"`. */
+export const LSplit =
+  ({ children, ...props }) => <Splitter dir="LEFT" {...props}>{children}</Splitter>;
 
-export default { Splitter };
+/** @summary Splitter with `dir="RIGHT"`. */
+export const RSplit =
+  ({ children, ...props }) => <Splitter dir="RIGHT" {...props}>{children}</Splitter>;
 
 // --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/tabs.js b/ivette/src/dome/src/renderer/layout/tabs.js
index 19987a0948c9d522ae7220b72689802227213077..61489e0bde419a6985e5ffeefc27d8a182e792e5 100644
--- a/ivette/src/dome/src/renderer/layout/tabs.js
+++ b/ivette/src/dome/src/renderer/layout/tabs.js
@@ -118,6 +118,4 @@ import { register } from 'dome/misc/register' ;
 register(TabsBar, 'DOME_TABSBAR');
 register(Tab,     'DOME_TABSBAR_ITEM');
 
-export default { Tab , TabsBar , TabsPane } ;
-
 // --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/toolbars.js b/ivette/src/dome/src/renderer/layout/toolbars.js
index 890f15daf962a2bea2130b1b65f26a8e990e225c..721c5ea3dc838188225c4231c690c36f55d8f7e5 100644
--- a/ivette/src/dome/src/renderer/layout/toolbars.js
+++ b/ivette/src/dome/src/renderer/layout/toolbars.js
@@ -185,6 +185,4 @@ register( Separator ,  'DOME_TOOLBAR_ITEM' );
 register( Filler , 'DOME_TOOLBAR_ITEM' );
 register( Button , 'DOME_TOOLBAR_ITEM' );
 
-export default { ToolBar , Space , Inset, Separator, Filler, Button, ButtonGroup, Select };
-
 // --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/table/arrays.js b/ivette/src/dome/src/renderer/table/arrays.js
index cfd5ef18555a49c16ca4041311030b3b923bd4c4..92836415961c8022b850dd73db74f5202d6ed558 100644
--- a/ivette/src/dome/src/renderer/table/arrays.js
+++ b/ivette/src/dome/src/renderer/table/arrays.js
@@ -520,9 +520,3 @@ export function useArrayModel( items )
 }
 
 // --------------------------------------------------------------------------
-// --- Exports
-// --------------------------------------------------------------------------
-
-export default { compareWith , ComparisonRing , UnsortedModel, ArrayModel } ;
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/table/models.js b/ivette/src/dome/src/renderer/table/models.js
index 161a240c418c66a6fb04f4605ce9e42fd096f848..1f95258200b6502eae2527b8cf92deb16352d461 100644
--- a/ivette/src/dome/src/renderer/table/models.js
+++ b/ivette/src/dome/src/renderer/table/models.js
@@ -249,7 +249,3 @@ export class Model {
 }
 
 // --------------------------------------------------------------------------
-
-export default { Model , ASC , DESC } ;
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/table/views.js b/ivette/src/dome/src/renderer/table/views.js
index 3ef8219c57d02a62403ac006f334486788102b51..d0a4bc112cedc9f1b385f8d71e444bc16638321d 100644
--- a/ivette/src/dome/src/renderer/table/views.js
+++ b/ivette/src/dome/src/renderer/table/views.js
@@ -4,8 +4,9 @@
 
 /** @module dome/table/views */
 
+import _ from 'lodash' ;
 import React from 'react' ;
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 import { DraggableCore } from 'react-draggable';
 import { SVG } from 'dome/controls/icons' ;
 import {
@@ -14,7 +15,6 @@ import {
   Table as VTable,
   Column as VColumn
 } from 'react-virtualized' ;
-import _ from 'lodash' ;
 import './tables.css' ;
 
 // --------------------------------------------------------------------------
@@ -176,7 +176,8 @@ const computeWidth = (elt) => {
 */
 export const Column = (props) => null;
 // Fake component only used to store props.
-// Virtualized column is rendered with function below:
+// Virtualized column is rendered with function vColumn (see below)
+
 const vColumn = ({
   headerRef,
   columnResize,hasFill,lastElt,
@@ -666,7 +667,3 @@ export class Table extends React.Component {
 }
 
 // --------------------------------------------------------------------------
-
-export default { Table, Column, DefineColumn };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/text/buffers.js b/ivette/src/dome/src/renderer/text/buffers.js
index 4711a6a063b6e31bc7372f842fea2525a189381d..6bd46b845cacb47218a5e55bacb73df57db889b0 100644
--- a/ivette/src/dome/src/renderer/text/buffers.js
+++ b/ivette/src/dome/src/renderer/text/buffers.js
@@ -452,7 +452,3 @@ is blocked.
 }
 
 // --------------------------------------------------------------------------
-
-export default { RichTextBuffer };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/text/editors.js b/ivette/src/dome/src/renderer/text/editors.js
index 2caad57cbe7af675ca1aa391f456b3c85f637be2..b54e4e829fdea10c882a21d90ebd19a0bcde5a42 100644
--- a/ivette/src/dome/src/renderer/text/editors.js
+++ b/ivette/src/dome/src/renderer/text/editors.js
@@ -4,12 +4,12 @@
 
 /** @module dome/text/editors */
 
+import _ from 'lodash' ;
 import React from 'react' ;
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 import CodeMirror from 'codemirror/lib/codemirror.js' ;
 import 'codemirror/lib/codemirror.css' ;
 import './editors.css' ;
-import _ from 'lodash' ;
 
 const CSS_HOVERED = 'dome-xText-hover' ;
 const CSS_SELECTED = 'dome-xText-select' ;
@@ -388,7 +388,3 @@ export class Text extends React.Component {
 }
 
 // --------------------------------------------------------------------------
-
-export default { Text };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/template/Application.js b/ivette/src/dome/template/Application.js
index f7720a2a81fa1ff5a15b2e0f58f28cf95140f1c0..c98deea8572112ba3444adeba90303d3e5d365dc 100644
--- a/ivette/src/dome/template/Application.js
+++ b/ivette/src/dome/template/Application.js
@@ -12,7 +12,7 @@
 */
 
 import React from 'react' ;
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 import 'dome/misc/exports' ;
 
 export default (() => (
diff --git a/ivette/src/dome/template/main.js b/ivette/src/dome/template/main.js
index d102caa8c34b4a2c33a0166f86e23fbea55f6bf2..ea647d69a24c5b2d00ec0b70c1024724e2a2c328 100644
--- a/ivette/src/dome/template/main.js
+++ b/ivette/src/dome/template/main.js
@@ -14,4 +14,4 @@
    before or after the call to `Dome.start()`.
 */
 
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
diff --git a/ivette/src/dome/template/renderer.js b/ivette/src/dome/template/renderer.js
index 1544ac9e11373febc48161e9672b71456c6819f6..2452a96d7a597f939c6d9bd97305974ff9039d78 100644
--- a/ivette/src/dome/template/renderer.js
+++ b/ivette/src/dome/template/renderer.js
@@ -18,7 +18,12 @@
 // Enable live-editing in React:
 import 'react-hot-loader/patch' ;
 import React from 'react' ;
-import Dome from 'dome' ;
+import {
+  setApplicationWindow,
+  setPreferencesWindow,
+  isApplicationWindow,
+  isPreferencesWindow,
+} from 'dome' ;
 
 // You can change the name of the main components,
 // provided you define the makefile variable
@@ -29,13 +34,13 @@ import Application from './Application' ;
 import Preferences from './Preferences' ;
 
 // Define the application main components for each window:
-Dome.setApplicationWindow(Application);
-Dome.setPreferencesWindow(Preferences);
+setApplicationWindow(Application);
+setPreferencesWindow(Preferences);
 
 // Mark the main application reloadable and enable live updates:
-module.hot && Dome.isApplicationWindow() &&
-  module.hot.accept('./Application',() => Dome.setApplicationWindow(Application));
-module.hot && Dome.isPreferencesWindow() &&
-  module.hot.accept('./Preferences',() => Dome.setPreferencesWindow(Preferences));
+module.hot && isApplicationWindow() &&
+  module.hot.accept('./Application',() => setApplicationWindow(Application));
+module.hot && isPreferencesWindow() &&
+  module.hot.accept('./Preferences',() => setPreferencesWindow(Preferences));
 
 // --------------------------------------------------------------------------
diff --git a/ivette/src/frama-c/LabViews.tsx b/ivette/src/frama-c/LabViews.tsx
index ceee173cb8422ae016907641a9f70015f38004c2..a0225a87eb03ee695209ace0e7303fc825380587 100644
--- a/ivette/src/frama-c/LabViews.tsx
+++ b/ivette/src/frama-c/LabViews.tsx
@@ -6,12 +6,12 @@
 
 import _ from 'lodash';
 import React from 'react';
-import Dome from 'dome';
+import * as Dome from 'dome';
 import { Catch } from 'dome/errors';
 import { DnD, DragSource } from 'dome/dnd';
 import { SideBar, Section, Item } from 'dome/layout/sidebars';
 import { Splitter } from 'dome/layout/splitters';
-import Grids, { GridLayout, GridItem } from 'dome/layout/grids';
+import * as Grids from 'dome/layout/grids';
 import { Hbox, Hfill, Vfill } from 'dome/layout/boxes';
 import { IconButton, Field } from 'dome/controls/buttons';
 import { Label } from 'dome/controls/labels';
@@ -311,7 +311,7 @@ const makeGridItem = (customize: any, onClose: any) => (comp: any) => {
     );
   }
   return (
-    <GridItem
+    <Grids.GridItem
       id={id}
       className={properties.className}
       handle={properties.handle}
@@ -338,7 +338,7 @@ const makeGridItem = (customize: any, onClose: any) => (comp: any) => {
           <Catch title={id}>{children}</Catch>
         </TitleContext.Provider>
       </Vfill>
-    </GridItem>
+    </Grids.GridItem>
   );
 };
 
@@ -648,7 +648,7 @@ export function LabView(props: any) {
         {children}
       </UseLibrary>
       <Splitter settings={settingSplit} unfold={customize} dir="RIGHT">
-        <GridLayout
+        <Grids.GridLayout
           dnd={dnd}
           padding={2}
           className="labview-container"
@@ -671,7 +671,3 @@ export function LabView(props: any) {
 }
 
 // --------------------------------------------------------------------------
-
-export default { LabView, View, Group, Component, TitleBar };
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/frama-c/server.ts b/ivette/src/frama-c/server.ts
index 65d770957fdb2ef8bbf625394fb38b29aff1afc7..648f99fbc3cfa542593d251ab2946596a7eb27cd 100644
--- a/ivette/src/frama-c/server.ts
+++ b/ivette/src/frama-c/server.ts
@@ -9,10 +9,10 @@
 
 import _ from 'lodash';
 import React from 'react';
-import Dome from 'dome';
-import System from 'dome/system';
+import * as Dome from 'dome';
+import * as System from 'dome/system';
 import { RichTextBuffer } from 'dome/text/buffers';
-import { Request } from 'zeromq';
+import { Request as ZmqRequest } from 'zeromq';
 
 // --------------------------------------------------------------------------
 // --- Events
@@ -60,7 +60,7 @@ export const SHUTDOWN = 'frama-c.server.shutdown';
  *  @description
  *  Event `frama-c.server.signal.<id>'` for signal `<id>`.
  */
-const SIGNAL = 'frama-c.server.signal.';
+export const SIGNAL = 'frama-c.server.signal.';
 
 /**
  *  @event
@@ -71,14 +71,14 @@ const SIGNAL = 'frama-c.server.signal.';
  *  @description
  *  Event `frama-c.server.activity.<id>'` for signal `<id>`.
  */
-const ACTIVITY = 'frama-c.server.activity.';
+export const ACTIVITY = 'frama-c.server.activity.';
 
 // --------------------------------------------------------------------------
 // --- Server Status
 // --------------------------------------------------------------------------
 
 /**
- *  @typedef StatusCode
+ *  @typedef Status
  *  @summary Server Status Codes.
  *  @description
  *   - `OFF` Server off
@@ -109,7 +109,7 @@ let queueCmd: any; // Queue of server commands to be sent
 let queueIds: any; // Waiting request ids to be sent
 let polling: any; // Timeout Polling timer
 let flushing: any; // Immediate Flushing timer
-let config: ServerConfiguration;
+let config: Configuration;
 let process: any; // Server process
 let socket: any; // ZMQ (REQ) socket
 let busy: boolean; // ZMQ socket is busy
@@ -119,7 +119,7 @@ let killing: any; // killing timeout
 // --- Server Console
 // --------------------------------------------------------------------------
 
-const buffer = new RichTextBuffer({ maxlines: 200 });
+export const buffer = new RichTextBuffer({ maxlines: 200 });
 
 // --------------------------------------------------------------------------
 // --- Server Status
@@ -131,7 +131,7 @@ const buffer = new RichTextBuffer({ maxlines: 200 });
  *  @description
  *  See [STATUS](module-frama-c_server.html#~STATUS) code definitions.
  */
-function getStatus(): StatusCode { return status; }
+export function getStatus(): StatusCode { return status; }
 
 /**
  *  @summary Hook on current server (Custom React Hook).
@@ -139,25 +139,25 @@ function getStatus(): StatusCode { return status; }
  *  @description
  *  See [STATUS](module-frama-c_server.html#~STATUS) code definitions.
  */
-function useStatus(): StatusCode {
+export function useStatus(): StatusCode {
   Dome.useUpdate(STATUS);
   return status;
 }
 
 /** Return `FAILED` status message. */
-function getError() { return error; }
+export function getError() { return error; }
 
 /**
  *  @summary Frama-C Server is running and ready to handle requests.
  *  @return {boolean} status is `RUNNING`.
  */
-function isRunning(): boolean { return status === StatusCode.RUNNING; }
+export function isRunning(): boolean { return status === StatusCode.RUNNING; }
 
 /**
  *  @summary Number of requests still pending.
  *  @return {number} pending requests
  */
-function getPending(): number {
+export function getPending(): number {
   return _.reduce(pending, (_, n) => n + 1, 0);
 }
 
@@ -165,20 +165,20 @@ function getPending(): number {
  *  @summary Register callback on READY event.
  *  @param {function} callback - invoked when the server enters RUNNING status
  */
-function onReady(callback: any) { Dome.on(READY, callback); }
+export function onReady(callback: any) { Dome.on(READY, callback); }
 
 /**
  *  @summary Register callback on SHUTDOWN event.
  *  @param {function} callback - invoked when the server enters SHUTDOWN status
  */
-function onShutdown(callback: any) { Dome.on(SHUTDOWN, callback); }
+export function onShutdown(callback: any) { Dome.on(SHUTDOWN, callback); }
 
 /**
  *  @summary Register callback on Signal ACTIVITY event.
  *  @*param {string} id - the signal event to listen to
  *  @*param {function} callback - invoked with `callback(signal,active)`
  */
-function onActivity(signal: string, callback: any) {
+export function onActivity(signal: string, callback: any) {
   Dome.on(ACTIVITY + signal, callback);
 }
 
@@ -211,7 +211,7 @@ function _status(newStatus: StatusCode, err?: string) {
  *  If the server is being shutdown, it will reboot.
  *  Otherwise, the Frama-C Server is spawned.
  */
-function start() {
+export function start() {
   switch (status) {
     case StatusCode.OFF:
     case StatusCode.FAILED:
@@ -243,7 +243,7 @@ function start() {
  *  When the server is shutting down, restart is canceled.
  *  Otherwise, this is a no-op.
  */
-function stop() {
+export function stop() {
   switch (status) {
     case StatusCode.STARTED:
       _kill();
@@ -278,7 +278,7 @@ function stop() {
  *  This function is automatically called when the `module` emits the `KILL`
  *  signal.
  */
-function kill() {
+export function kill() {
   switch (status) {
     case StatusCode.STARTED:
     case StatusCode.RUNNING:
@@ -305,7 +305,7 @@ function kill() {
  *  When running, try to gracefully shutdown the Server,
  *  and finally schedule a reboot on exit.
  */
-function restart() {
+export function restart() {
   switch (status) {
     case StatusCode.OFF:
     case StatusCode.FAILED:
@@ -335,7 +335,7 @@ function restart() {
  *  When not running, clear the console and reset any error flag.
  *  Otherwised, do nothing.
  */
-function clear() {
+export function clear() {
   switch (status) {
     case StatusCode.FAILED:
       _status(StatusCode.OFF);
@@ -355,7 +355,7 @@ function clear() {
 // --- Server Configure
 // --------------------------------------------------------------------------
 
-export interface ServerConfiguration {
+export interface Configuration {
   env?: any; // Process environment variables (default: `undefined`)
   cwd?: string; // Working directory (default: current)
   command?: string; // Server command (default: `frama-c`)
@@ -369,9 +369,9 @@ export interface ServerConfiguration {
 
 /**
  *  @summary Configure the Server.
- *  @param {ServerConfiguration} sc - Server Configuration
+ *  @param {Configuration} sc - Server Configuration
  */
-function configure(sc: ServerConfiguration) {
+export function configure(sc: Configuration) {
   config = sc || {};
 }
 
@@ -381,7 +381,7 @@ function configure(sc: ServerConfiguration) {
  *  @description
  *  See `configure()` method.
  */
-function getConfig(): ServerConfiguration {
+export function getConfig(): Configuration {
   return config;
 }
 
@@ -456,7 +456,7 @@ async function _launch() {
     _close(signal || status);
   });
   // Connect to Server
-  socket = new Request();
+  socket = new ZmqRequest();
   busy = false;
   socket.connect(sockaddr);
 }
@@ -601,7 +601,7 @@ function _signal(id: any) {
  *  If the server is not yet listening to this signal, a `SIGON` command is
  *  sent.
  */
-function onSignal(id: string, callback: any) {
+export function onSignal(id: string, callback: any) {
   _signal(id).on(callback);
 }
 
@@ -613,7 +613,7 @@ function onSignal(id: string, callback: any) {
  *  When no more callbacks are listening to this signal for a while,
  *  the server will be notified with a `SIGOFF` command.
  */
-function offSignal(id: string, callback: any) {
+export function offSignal(id: string, callback: any) {
   _signal(id).off(callback);
 }
 
@@ -622,7 +622,7 @@ function offSignal(id: string, callback: any) {
  *  @param {string} id - the signal event to listen to
  *  @param {function} callback - the callback to be called on signal
  */
-function useSignal(id: string, callback: any) {
+export function useSignal(id: string, callback: any) {
   React.useEffect(() => {
     onSignal(id, callback);
     return () => { offSignal(id, callback); };
@@ -651,19 +651,19 @@ Dome.on(SHUTDOWN, () => {
  *   - `SET` Used to write data into the server
  *   - `EXEC` Used to make the server execute a task
  */
-enum RqKind {
+export enum RqKind {
   GET = 'GET',
   SET = 'SET',
   EXEC = 'EXEC'
 }
 
 /**
- * @typedef ServerRequest
+ * @typedef Request
  * @summary Server request.
  * @param {string} endpoint - the request identifier
  * @param {any} params - the request parameters
  */
-export interface ServerRequest {
+export interface Request {
   endpoint: string;
   params: any;
 }
@@ -672,28 +672,28 @@ export interface ServerRequest {
  * @summary Get data from the server.
  * @param sr - the server request description.
  */
-async function GET(sr: ServerRequest) {
-  return _create(RqKind.GET, sr.endpoint, sr.params);
+export async function GET(sr: Request) {
+  return send(RqKind.GET, sr.endpoint, sr.params);
 }
 
 /**
  * @summary Set data into the server.
  * @param sr - the server request description.
  */
-async function SET(sr: ServerRequest) {
-  return _create(RqKind.SET, sr.endpoint, sr.params);
+export async function SET(sr: Request) {
+  return send(RqKind.SET, sr.endpoint, sr.params);
 }
 
 /**
  * @summary Make the server execute a task.
  * @param sr - the server request description.
  */
-async function EXEC(sr: ServerRequest) {
-  return _create(RqKind.EXEC, sr.endpoint, sr.params);
+export async function EXEC(sr: Request) {
+  return send(RqKind.EXEC, sr.endpoint, sr.params);
 }
 
 /**
- *  @summary Create request to send to the server.
+ *  @summary Send a request to the server.
  *  @param {RqKind} kind - the request kind
  *  @param {string} rq - the request identifier
  *  @param {object} params - request parameters
@@ -702,7 +702,7 @@ async function EXEC(sr: ServerRequest) {
  *  You may _kill_ the request before its normal termination by
  *  invoking `kill()` on the returned promised.
  */
-function _create(kind: RqKind, rq: string, params: any) {
+function send(kind: RqKind, rq: string, params: any) {
   if (!isRunning()) return Promise.reject(new Error('Server not running'));
   if (!rq) return Promise.reject(new Error('Undefined request'));
   const rid = `RQ.${rqid}`;
@@ -848,36 +848,3 @@ function _receive(resp: any) {
 }
 
 // --------------------------------------------------------------------------
-// --- Exports
-// --------------------------------------------------------------------------
-
-export default {
-  configure,
-  getConfig,
-  getStatus,
-  useStatus,
-  buffer,
-  getError,
-  getPending,
-  isRunning,
-  start,
-  stop,
-  kill,
-  restart,
-  clear,
-  GET,
-  SET,
-  EXEC,
-  onReady,
-  onShutdown,
-  onActivity,
-  onSignal,
-  offSignal,
-  useSignal,
-  STATUS,
-  READY,
-  SHUTDOWN,
-  StatusCode,
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/frama-c/states.ts b/ivette/src/frama-c/states.ts
index 9c757e7fd7d4b3f3338f368f8e74643b7856f5a2..c00809c195bba44f12fa413fdeb2cffba8ac44b3 100644
--- a/ivette/src/frama-c/states.ts
+++ b/ivette/src/frama-c/states.ts
@@ -10,8 +10,8 @@
 
 import _ from 'lodash';
 import React from 'react';
-import Dome from 'dome';
-import Server, { ServerRequest } from './server';
+import * as Dome from 'dome';
+import * as Server from './server';
 
 /**
  *  @event
@@ -41,7 +41,7 @@ let states: any = {};
 const stateDefaults: any = {};
 
 Server.onReady(async () => {
-  const sr: ServerRequest = {
+  const sr: Server.Request = {
     endpoint: 'kernel.project.getCurrent',
     params: {},
   };
@@ -79,7 +79,7 @@ export function useProject() {
  */
 export async function setProject(project: string) {
   if (Server.isRunning()) {
-    const sr: ServerRequest = {
+    const sr: Server.Request = {
       endpoint: 'kernel.project.setCurrent',
       params: project,
     };
@@ -170,7 +170,7 @@ export function useRequest(rq: string, params: any, options: any = {}) {
       }
       (async () => {
         try {
-          const sr: ServerRequest = { endpoint: rq, params };
+          const sr: Server.Request = { endpoint: rq, params };
           const v = await Server.GET(sr);
           setValue(v);
         } catch (err) {
@@ -219,7 +219,11 @@ export function useRequest(rq: string, params: any, options: any = {}) {
  *  by the provided key.
  *  Items in the collection that do have the key are not indexed.
  */
-function useDictionary(rq: string, params: any = null, options: any = {}) {
+export function useDictionary(
+  rq: string,
+  params: any = null,
+  options: any = {},
+) {
   const {
     offline = true,
     pending = true,
@@ -282,14 +286,14 @@ class SyncState {
   async setValue(v: any) {
     this.insync = true;
     this.value = v;
-    const sr: ServerRequest = { endpoint: this.setRq, params: v };
+    const sr: Server.Request = { endpoint: this.setRq, params: v };
     await Server.SET(sr);
     Dome.emit(this.UPDATE);
   }
 
   async update() {
     this.insync = true;
-    const sr: ServerRequest = { endpoint: this.getRq, params: {} };
+    const sr: Server.Request = { endpoint: this.getRq, params: {} };
     const v = await Server.GET(sr);
     this.value = v;
     Dome.emit(this.UPDATE);
@@ -327,7 +331,7 @@ Server.onShutdown(() => (syncStates = {}));
  *  - sends a `<id>.set` request to update the value of the state;
  *  - listens to `<id>.sig` signal to stay in sync with server updates.
  */
-function useSyncState(id: string) {
+export function useSyncState(id: string) {
   const s = getSyncState(id);
   Dome.useUpdate(PROJECT, s.UPDATE);
   Server.useSignal(s.signal, s.update);
@@ -343,7 +347,7 @@ function useSyncState(id: string) {
  *  - sends a `<id>.get` request to obtain the current value of the state;
  *  - listens to `<id>.sig` signal to stay in sync with server updates.
  */
-function useSyncValue(id: string) {
+export function useSyncValue(id: string) {
   const s = getSyncState(id);
   Dome.useUpdate(s.update);
   Server.useSignal(s.signal, s.update);
@@ -385,7 +389,7 @@ class SyncArray {
 
   async fetch() {
     this.insync = true;
-    const sr: ServerRequest = { endpoint: this.fetchRq, params: 50 };
+    const sr: Server.Request = { endpoint: this.fetchRq, params: 50 };
     const data = await Server.GET(sr);
     const { reload = false, removed = [], updated = [], pending = 0 } = data;
     let reloaded = false;
@@ -410,7 +414,7 @@ class SyncArray {
   }
 
   async reload() {
-    const sr: ServerRequest = { endpoint: this.reloadRq, params: {} };
+    const sr: Server.Request = { endpoint: this.reloadRq, params: {} };
     await Server.SET(sr);
     this.index = {};
     this.insync = false;
@@ -488,21 +492,3 @@ export function useSelection() {
 }
 
 // --------------------------------------------------------------------------
-
-export default {
-  useProject,
-  setProject,
-  setStateDefault,
-  useState,
-  useSyncState,
-  useSyncValue,
-  useSyncArray,
-  reloadArray,
-  useRequest,
-  useDictionary,
-  useSelection,
-  PROJECT,
-  STATE,
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/frama-c/style.css b/ivette/src/frama-c/style.css
index 1b6893fd996b7985af7b39b50199026d0f1ef621..f918358dc93d2336f9dc83ae63778c1913374f26 100644
--- a/ivette/src/frama-c/style.css
+++ b/ivette/src/frama-c/style.css
@@ -34,11 +34,12 @@
 .labview-titlebar
 {
     background: #ccc ;
+    height: 24px ;
 }
 
 .labview-titlebar .dome-xLabel
 {
-    padding-top: 3px ;
+    padding-top: 4px ;
 }
 
 .labview-handle
diff --git a/ivette/src/main/index.js b/ivette/src/main/index.js
index 2624543a9daad843d4d432821eee867a08b836ae..ab5c926157df3d818edf6fe362980945beada6d8 100644
--- a/ivette/src/main/index.js
+++ b/ivette/src/main/index.js
@@ -14,6 +14,6 @@
    before or after the call to `Dome.start()`.
 */
 
-import Dome from 'dome' ;
+import * as Dome from 'dome' ;
 Dome.setName('Ivette');
 Dome.start();
diff --git a/ivette/src/renderer/ASTview.tsx b/ivette/src/renderer/ASTview.tsx
index 6cf68490ac3da07ef67dddd7944f4fb2b12e7c4a..d7b941609926144dd3ba8cf0cce9045310c54d23 100644
--- a/ivette/src/renderer/ASTview.tsx
+++ b/ivette/src/renderer/ASTview.tsx
@@ -3,8 +3,8 @@
 // --------------------------------------------------------------------------
 
 import React from 'react';
-import Server, { ServerRequest } from 'frama-c/server';
-import States from 'frama-c/states';
+import * as Server from 'frama-c/server';
+import * as States from 'frama-c/states';
 
 import { Vfill } from 'dome/layout/boxes';
 import { RichTextBuffer } from 'dome/text/buffers';
@@ -50,7 +50,7 @@ const ASTview = () => {
     if (theFunction) {
       buffer.log('// Loading', theFunction, '…');
       (async () => {
-        const sr: ServerRequest = {
+        const sr: Server.Request = {
           endpoint: 'kernel.ast.printFunction',
           params: theFunction,
         };
diff --git a/ivette/src/renderer/Application.tsx b/ivette/src/renderer/Application.tsx
index e93e3d07bf67ce5b2af512769f26031922e6deb0..bb69426246641b04171c62f47d972c25b2f5ce24 100644
--- a/ivette/src/renderer/Application.tsx
+++ b/ivette/src/renderer/Application.tsx
@@ -3,17 +3,17 @@
 // --------------------------------------------------------------------------
 
 import React from 'react';
-import Dome from 'dome';
+import * as Dome from 'dome';
 import { Vfill } from 'dome/layout/boxes';
 import { Splitter } from 'dome/layout/splitters';
-import Toolbar from 'dome/layout/toolbars';
-import Sidebar from 'dome/layout/sidebars';
+import * as Toolbar from 'dome/layout/toolbars';
+import * as Sidebar from 'dome/layout/sidebars';
 
 import './style.css';
 
 import { LabView, View, Group } from 'frama-c/LabViews';
 import { GridItem } from 'dome/layout/grids';
-import Controller from './Controller';
+import * as Controller from './Controller';
 import Properties from './Properties';
 import ASTview from './ASTview';
 
diff --git a/ivette/src/renderer/Controller.tsx b/ivette/src/renderer/Controller.tsx
index 0e46c90baef4e127529e2a1a3758ced1d6722583..a5ce00a483587b0c8f415d2621939b7cb80037f4 100644
--- a/ivette/src/renderer/Controller.tsx
+++ b/ivette/src/renderer/Controller.tsx
@@ -3,15 +3,14 @@
 // --------------------------------------------------------------------------
 
 import React from 'react';
-import Dome from 'dome';
+import * as Dome from 'dome';
 
 import { Button as ToolButton, ButtonGroup, Space } from 'dome/layout/toolbars';
 import { LED, IconButton } from 'dome/controls/buttons';
 import { Label, Code } from 'dome/controls/labels';
 import { RichTextBuffer } from 'dome/text/buffers';
 import { Text } from 'dome/text/editors';
-
-import Server, { StatusCode, ServerConfiguration } from 'frama-c/server';
+import * as Server from 'frama-c/server';
 import { Component, TitleBar } from 'frama-c/LabViews';
 
 import 'codemirror/theme/ambiance.css';
@@ -20,10 +19,10 @@ import 'codemirror/theme/ambiance.css';
 // --- Configure Server
 // --------------------------------------------------------------------------
 
-let cmdConfig: ServerConfiguration;
+let cmdConfig: Server.Configuration;
 const cmdLine = new RichTextBuffer();
 
-function dumpCmdLine(sc: ServerConfiguration): void {
+function dumpCmdLine(sc: Server.Configuration): void {
   const { cwd, command, sockaddr, params } = sc;
   cmdLine.clear();
   if (cwd) cmdLine.log('--cwd', cwd);
@@ -99,11 +98,11 @@ export const Control = () => {
     { enabled: false, onClick: null };
 
   switch (status) {
-    case StatusCode.OFF:
-    case StatusCode.FAILED:
+    case Server.StatusCode.OFF:
+    case Server.StatusCode.FAILED:
       play = { enabled: true, onClick: Server.start };
       break;
-    case StatusCode.RUNNING:
+    case Server.StatusCode.RUNNING:
       stop = { enabled: true, onClick: Server.stop };
       reload = { enabled: true, onClick: Server.restart };
       break;
@@ -255,25 +254,25 @@ export const Status = () => {
   let blink;
   let error;
   switch (s) {
-    case StatusCode.OFF:
+    case Server.StatusCode.OFF:
       led = 'inactive';
       break;
-    case StatusCode.STARTED:
+    case Server.StatusCode.STARTED:
       led = 'active';
       blink = true;
       break;
-    case StatusCode.RUNNING:
+    case Server.StatusCode.RUNNING:
       led = n > 0 ? 'positive' : 'active';
       break;
-    case StatusCode.KILLING:
+    case Server.StatusCode.KILLING:
       led = 'negative';
       blink = true;
       break;
-    case StatusCode.RESTART:
+    case Server.StatusCode.RESTART:
       led = 'warning';
       blink = true;
       break;
-    case StatusCode.FAILED:
+    case Server.StatusCode.FAILED:
       led = 'negative';
       blink = false;
       error = Server.getError();
@@ -301,14 +300,3 @@ export const Stats = () => {
 };
 
 // --------------------------------------------------------------------------
-// --- Controller Exports
-// --------------------------------------------------------------------------
-
-export default {
-  Control,
-  Console,
-  Status,
-  Stats,
-};
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/renderer/Properties.tsx b/ivette/src/renderer/Properties.tsx
index f8a7b51e758616366c239bbbcdf2a066f32aea30..c17bfe7f81d295327cbd6fd30da2ab7f6b5e5f3f 100644
--- a/ivette/src/renderer/Properties.tsx
+++ b/ivette/src/renderer/Properties.tsx
@@ -4,7 +4,7 @@
 
 import _ from 'lodash';
 import React from 'react';
-import States from 'frama-c/states';
+import * as States from 'frama-c/states';
 import { Label, Code } from 'dome/controls/labels';
 import { ArrayModel } from 'dome/table/arrays';
 import { Table, DefineColumn } from 'dome/table/views';
diff --git a/ivette/src/renderer/index.js b/ivette/src/renderer/index.js
index 1544ac9e11373febc48161e9672b71456c6819f6..2452a96d7a597f939c6d9bd97305974ff9039d78 100644
--- a/ivette/src/renderer/index.js
+++ b/ivette/src/renderer/index.js
@@ -18,7 +18,12 @@
 // Enable live-editing in React:
 import 'react-hot-loader/patch' ;
 import React from 'react' ;
-import Dome from 'dome' ;
+import {
+  setApplicationWindow,
+  setPreferencesWindow,
+  isApplicationWindow,
+  isPreferencesWindow,
+} from 'dome' ;
 
 // You can change the name of the main components,
 // provided you define the makefile variable
@@ -29,13 +34,13 @@ import Application from './Application' ;
 import Preferences from './Preferences' ;
 
 // Define the application main components for each window:
-Dome.setApplicationWindow(Application);
-Dome.setPreferencesWindow(Preferences);
+setApplicationWindow(Application);
+setPreferencesWindow(Preferences);
 
 // Mark the main application reloadable and enable live updates:
-module.hot && Dome.isApplicationWindow() &&
-  module.hot.accept('./Application',() => Dome.setApplicationWindow(Application));
-module.hot && Dome.isPreferencesWindow() &&
-  module.hot.accept('./Preferences',() => Dome.setPreferencesWindow(Preferences));
+module.hot && isApplicationWindow() &&
+  module.hot.accept('./Application',() => setApplicationWindow(Application));
+module.hot && isPreferencesWindow() &&
+  module.hot.accept('./Preferences',() => setPreferencesWindow(Preferences));
 
 // --------------------------------------------------------------------------