factor(index): use bind partical apply
test(index): add test