<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fi_business_id(business_id):
 """ Validate a Finnish Business ID. Each company in Finland has a distinct business id. For more information see `Finnish Trade Register`_ .. _Finnish Trade Register: http://en.wikipedia.org/wiki/Finnish_Trade_Register Examples:: True .. versionadded:: 0.4 .. versionchanged:: 0.5 Method renamed from ``finnish_business_id`` to ``fi_business_id`` :param business_id: business_id to validate """

    if not business_id or not re.match(business_id_pattern, business_id):
        return False
    factors = [7, 9, 10, 5, 8, 4, 2]
    numbers = map(int, business_id[:7])
    checksum = int(business_id[8])
    sum_ = sum(f * n for f, n in zip(factors, numbers))
    modulo = sum_ % 11
    return (11 - modulo == checksum) or (modulo == 0 and checksum == 0)