add virtual pure send_query function