feature(index) add async