generator block-level