I don't exactly get why you need a WeakMap ? why can't you just set an instance variable `tmpl` ? `this.tmpl = extract(idOrNode)`