fix function reduce
add function map