multi-block version