block-based dismiss