improved Ask function