dynamic weights for pages make the renderers declare what pages they wrote make the renderers have tags and use search in chooser to filter by tag split triggers away from page chooser; main chooser thread in kiosk.py gets triggers ..from the page queue just like voice commands and therefore doesn't have to poll ..the chooser as often; can probably be a blocking read with a longer timeout.