<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_callee_account( global_state: GlobalState, callee_address: str, dynamic_loader: DynLoader ):
 """Gets the callees account from the global_state. :param global_state: state to look in :param callee_address: address of the callee :param dynamic_loader: dynamic loader to use :return: Account belonging to callee """

    environment = global_state.environment
    accounts = global_state.accounts

    try:
        return global_state.accounts[callee_address]
    except KeyError:
        # We have a valid call address, but contract is not in the modules list
        log.debug("Module with address " + callee_address + " not loaded.")

    if dynamic_loader is None:
        raise ValueError()

    log.debug("Attempting to load dependency")

    try:
        code = dynamic_loader.dynld(callee_address)
    except ValueError as error:
        log.debug("Unable to execute dynamic loader because: {}".format(str(error)))
        raise error
    if code is None:
        log.debug("No code returned, not a contract account?")
        raise ValueError()
    log.debug("Dependency loaded: " + callee_address)

    callee_account = Account(
        callee_address, code, callee_address, dynamic_loader=dynamic_loader
    )
    accounts[callee_address] = callee_account

    return callee_account