Is this the only reason to use tags? I would much rather check the `usernameField` and `passwordField` pointers here. Less brittle