could we save this call to querySelectorAll if we cache the appropriate nodes?