code: function () {
    var self = this;
  
    this.collectionRegistry = {};
    // emit molecuel elements pre init event
    molecuel.emit('mlcl::collections::init:pre', self);
  
    /**
     * Schema directory config
     */
    if (molecuel.config.collections && molecuel.config.collections.collectionDir) {
      this.collectionDir = molecuel.config.collections.collectionDir;
    }
  
    /**
     * Execute after successful elasticsearch connection
     */
    molecuel.on('mlcl::elements::init:post', function (elements) {
      // add the access to all the db's and searchfunctionality
      self.elements = elements;
      self.elastic = elements.elastic;
      self.database = elements.database;
      self.registerCollections();
      molecuel.emit('mlcl::collections::init:post', self);
    });
  
    //register block handler
    molecuel.on('mlcl::blocks::init:modules', function(blocks) {
      blocks.registerTypeHandler('collection', self.block);
    });
  
    return this;
  }
docs: This module serves the molecuel elements the type definition for database objects
  @todo implement the dynamic generation of elements
  @constructor