refactored chrome-ext