docs: function createStorage( backend, namespace ) {
  
     /**
      * Provides a convenient API over the browser's `window.localStorage` and `window.sessionStorage` objects.
      * If a browser doesn't support [web storage](http://www.w3.org/TR/webstorage/), a warning is logged to the
      * `console` (if available) and a non-persistent in-memory store will be used instead. Note that this can
      * for example also happen when using Mozilla Firefox with cookies disabled and as such isn't limited to
      * older browsers.
      *
      * Additionally, in contrast to plain *web storage* access, non-string values will be automatically passed
      * through JSON (de-) serialization on storage or retrieval. All keys will be prepended with a combination
      * of a fixed (`ax.`) and an application-specific namespace (configured using `storagePrefix` with fallback
      * to `name`) to avoid naming clashes with other (LaxarJS) web applications running on the same host and
      * port. All {@link StorageApi} accessor methods should be called without any namespace as it is
      * prepended automatically.
      *
      * @name StorageApi
      * @constructor
      */
     return {
        getItem,
        setItem,
        removeItem
     };
  
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  
     /**
      * Retrieves a `value` by `key` from the store. JSON deserialization will automatically be applied.
      *
      * @param {String} key
      *    the key of the item to retrieve (without namespace prefix)
      *
      * @return {*}
      *    the value or `null` if it doesn't exist in the store
      *
      * @memberof StorageApi
      */
     function getItem( key ) {
        const item = backend.getItem( `${namespace}.${key}` );
        return item && JSON.parse( item );
     }
  
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  
     /**
      * Sets a `value` for a `key`. The value must be JSON serializable. An existing value will be overwritten.
      *
      * @param {String} key
      *    the key of the item to set (without namespace prefix)
      * @param {*} value
      *    the new value to set
      *
      * @memberof StorageApi
      */
     function setItem( key, value ) {
        const nsKey = `${namespace}.${key}`;
        if( value === undefined ) {
           backend.removeItem( nsKey );
        }
        else {
           backend.setItem( nsKey, JSON.stringify( value ) );
        }
     }
  
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  
     /**
      * Removes the value associated with `key` from the store.
      *
      * @param {String} key
      *    the key of the item to remove (without namespace prefix)
      *
      * @memberof StorageApi
      */
     function removeItem( key ) {
        backend.removeItem( `${namespace}.${key}` );
     }
  
  }