implement `ask`