enabled(){
  // styles
  
  this.css = window.TDPF_createCustomStyle(this);
  this.css.insert("html[data-td-theme='dark'] .quoted-tweet .td-timeline-poll { color: #e1e8ed; }");
  
  // utility functions
  
  const hasPoll = function(tweet){
    return tweet.hasPoll && tweet.hasPoll();
  };
  
  const renderTweetPoll = function(tweet){
    return `<div class='td-timeline-poll'>${TD.ui.template.render("status/poll", $.extend({}, tweet, {
      chirp: tweet
    }))}</div>`;
  };
  
  const renderPollHook = function(tweet, html){
    let ele = null;
    
    if (hasPoll(tweet)){
      (ele || (ele = $(html))).find(".js-tweet-body").first().children("div").last().after(renderTweetPoll(tweet));
    }
    
    if (tweet.quotedTweet && hasPoll(tweet.quotedTweet)){
      (ele || (ele = $(html))).find(".js-quoted-tweet-text").first().after(renderTweetPoll(tweet.quotedTweet));
    }
    
    if (ele){
      ele.find(".js-card-container").css("display", "none");
      return ele.prop("outerHTML");
    }
    else{
      return html;
    }
  };
  
  // hooks
  
  var funcs = {
    TwitterStatus: TD.services.TwitterStatus.prototype.render,
    TwitterActionOnTweet: TD.services.TwitterActionOnTweet.prototype.render,
    TweetDetailView: TD.components.TweetDetailView.prototype._renderChirp
  };
  
  TD.services.TwitterStatus.prototype.render = function(e){
    return renderPollHook(this, funcs.TwitterStatus.apply(this, arguments));
  };
  
  TD.services.TwitterActionOnTweet.prototype.render = function(e){
    return renderPollHook(this.targetTweet, funcs.TwitterActionOnTweet.apply(this, arguments));
  };
  
  TD.components.TweetDetailView.prototype._renderChirp = function(){
    let result = funcs.TweetDetailView.apply(this, arguments);
    
    if (this.mainChirp.quotedTweet && hasPoll(this.mainChirp.quotedTweet)){
      $(this.$tweetDetail).find(".js-quoted-tweet-text").first().after(renderTweetPoll(this.mainChirp.quotedTweet));
    }
    
    return result;
  };
  
  this.prevRenderFuncs = funcs;
  window.TDPF_reloadColumns();
}

disabled(){
  TD.services.TwitterStatus.prototype.render = this.prevRenderFuncs.TwitterStatus;
  TD.services.TwitterActionOnTweet.prototype.render = this.prevRenderFuncs.TwitterActionOnTweet;
  TD.components.TweetDetailView.prototype._renderChirp = this.prevRenderFuncs.TweetDetailView;
  
  this.css.remove();
  window.TDPF_reloadColumns();
}