(function (root, factory) {
  'use strict';
  if (typeof define === 'function' && define.amd) {
    define([], factory);
  } else if (typeof exports === 'object') {
    module.exports = factory();
  } else {
    root.Slider = factory();
  }
}(this, function() {

  var Slider = function(selector, settings) {
    // slider core elements
    this.display = document.querySelector(selector);
    this.slider;

    // slider navigation
    this.nav;
    this.back;
    this.fore;
    this.navButtons = [];

    this.initialize();
  };

  Slider.prototype = {
    initialize: function() {
      build.call(this);
      buildNav.call(this);
    }
  }

  function build() {
    // build container
    this.slider = document.createElement('div');
    this.slider.classList.add('slidex3000__container');

    // insert it before the actual carousel element
    this.display.parentNode.insertBefore(this.slider, this.display);

    // move the slider into the contaner
    this.slider.appendChild(this.display);
    this.display.classList.add('slidex3000__slider');
  }

  function buildNav() {
    // build nav container
    this.nav = document.createElement('div');
    this.nav.classList.add('slidex3000__nav');

    // build back and forward buttons
    this.back = document.createElement('button');
    this.back.classList.add('slidex3000__back');
    this.nav.appendChild(this.back);
    this.navButtons.push(this.back);

    this.fore = document.createElement('button');
    this.fore.classList.add('slidex3000__fore');
    this.nav.appendChild(this.fore);
    this.navButtons.push(this.fore);

    // insert nav into dom
    this.slider.appendChild(this.nav);
  }

  window.slidex3000 = function(selector, settings) {
    return new Slider(selector, settings);
  };

}));

@@ -497,16 +497,147 @@
  = %5B%5D;%0A%0A
+    // slider tab navigation%0A    this.controls;%0A    this.dots = %5B%5D;%0A%0A    // flags%0A    this.length = this.display.children.length;%0A%0A
     this
@@ -720,16 +720,20 @@
    build
+Core
 .call(th
@@ -760,24 +760,52 @@
 call(this);%0A
+      buildDots.call(this);%0A
     %7D%0A  %7D%0A%0A 
@@ -819,16 +819,20 @@
 on build
+Core
 () %7B%0A   
@@ -1824,16 +1824,553 @@
 );%0A  %7D%0A%0A
+  function buildDots() %7B%0A    var self = this;%0A%0A    this.controls = document.createElement('div');%0A    this.controls.classList.add('slidex3000__controls');%0A%0A    for (var i = 0; i %3C this.length; i++) %7B%0A%0A      var li = document.createElement('li'),%0A          dot = document.createElement('button');%0A%0A      li.classList.add('slidex3000__control');%0A      dot.classList.add('slidex3000__dot');%0A%0A      li.appendChild(dot);%0A      self.controls.appendChild(li);%0A%0A      this.dots.push(dot);%0A    %7D%0A%0A    this.slider.appendChild(this.controls);%0A  %7D%0A%0A
   window

build dots(tabs like navigation)