use foldl/4
use foldl/5