added block-size precondition