docs: function App() {
    this.ui = {
      'map': 'j-map',
      'panel': 'j-panel',
      'header': 'j-header',
      'overlay': 'j-overlay'
    };
  
    /** This is root element of app */
    this.$app = document.getElementById('j-app');
  
    this.map;
  
    this.user = new User();
    this.places = new Places();
    this.checkin = Checkin;
  
    /* A list of possible name of pages */
    this._PAGES = ['dashboard', 'new_place', 'place_detailed', 'checkin'];
  
    this._activePageName = '';
      
    /**
     * Write to root element a class name of a page
     * by set activePage property 
     */
    Object.defineProperty(this, 'activePage', {
      set: function(params) {
        var self = this;
  
        // Set a class (pageName) to root el of app
        // Remove all previously options
        self._PAGES.forEach(function(pName) {
            self.$app.classList.remove(pName);
        });
  
        // set a name of current page
        self.$app.classList.add(params.pageName);
  
        // render the page
        self.renderPage(params.pageName, params.detailed);
  
        this._activePageName = params.pageName;
      },
      get: function() {
        return this._activePageName;
      }
    });
  
    this._init();
  }