moved away from jsdom, dramatically improve speed and reduce memory leak