This whole `choices` thing still seems a bit overcomplex. I'll leave it for now & merge this stuff, we'll probably visit again at a later stage.