refactor
add index