use a generic SelectState to handle first level tags