Compose your async functions with elegance