add map append -> foldr implement