refactor: add list map/reduce lib