var decorator = ['$delegate', '$injector', function ($delegate, $injector) {
      // Loop over all functions in $delegate and wrap these functions using the [decorate] functions above.
      for (var prop in $delegate) {
        if (angular.isFunction($delegate[prop])) {
          $delegate[prop] = decorate($injector, $delegate, $delegate[prop]);