Try again with easier/reasonable constraints, and also add feature to async version as well