Refactor to support more options, generate some cleaner DOM elements, handle more dynamic pages, etc.