added block matrix utility