accept Dialog instead of DialogReaderMenu for more flexible interface