adding batch processing and async requests