Better though, as each view / tab is uniquely identified by its `id`, when instantiating the view manager we could provide two additional parameters: the first, a callback with **general post-load** actions as this chunk of code. The second, an object with *panel ids* and initialization callbacks for that panel. Callbacks would receive a parameter with the DOM element of the recently loaded panel.
```javascript
    tabmanager = new ViewManager(
      ['balance-tab', 'telephony-tab', 'datausage-tab'],
      function _generalPostLoad(panel) {
        var closeButtons = panel.querySelectorAll('.close-dialog');
        var that = this;
        [].forEach.call(closeButtons, function(closeButton) {
          closeButton.addEventListener('click', function() {
          that.closeCurrentView();
        });
      },
      {
       'topup-dialog': function _initializeDialog() {
         var sendCode = document.getElementById('topup-send-button');
         /* ... */
       }
     }
    );
```

My concern is to keep `ViewManager` decoupled from the behaviour of the application itself and all the code as much modularized as possible.