recursive minibuffer are wonderful, so use them