can we do this without calling querySelectorAll, this is presumably going to be slow