add foldLeft, foldRight, min, max