update to support streaming/async results