refactor
map, list, search refactor