Because I got all of the way through this pull request without realizing `widget-id` was unique :( I'll refactor