code: function() {
  
              // Execute the callbacks in LIFO order
              var i; // Needed by jshint
              for ( i = callbackList.length - 1; i >= 0; i-- ) {
                  callbackList[ i ]( rootId );
              }
              callbackList = [];
              for ( i = 0; i < elementList.length; i++ ) {
                  elementList[ i ].parentElement.removeChild( elementList[ i ] );
              }
              elementList = [];
              for ( i = 0; i < eventListenerList.length; i++ ) {
                  var target   = eventListenerList[ i ].target;
                  var type     = eventListenerList[ i ].type;
                  var listener = eventListenerList[ i ].listener;
                  target.removeEventListener( type, listener );
              }
          }
docs: `teardown` will - execute all callbacks in LIFO order - call `removeChild` on all DOM elements in LIFO order - call `removeEventListener` on all event listeners in LIFO order The goal of a teardown is to return to the same state that the DOM was before `impress().init()` was called.