decouple the builder api from the dom of `dart:html`