really impressed by the fold method implementation cause the handler, the value accumulation