Since listener execution order isn't guaranteed, do we want to validate this this way or just .contains() each of the values?