implement has_block