Latest update with requiring a DSN as first argument, and better node caching.