def _filter_chain(accumulated, additional):
    """
    Given two functions that take a block_key and return a boolean, yield
    a function that takes a block key, and 'ands' the functions together
    """
    return lambda block_key: accumulated(block_key) and additional(block_key)