add foldl foldr