Rewrote most of the extension to use a content script and body delegate