refactor(dom): hide all dom access behind a facade