implement block version of index