def takeoff_field_length(interface):
    
    # import tofl analysis module
    estimate_tofl = SUAVE.Methods.Performance.estimate_take_off_field_length
    
    # unpack data
    analyses        = interface.analyses
    missions        = interface.analyses.missions
    config          = interface.configs.takeoff
    # defining required data for tofl evaluation
    takeoff_airport = missions.base.airport    
    ref_weight      = config.mass_properties.takeoff
    weight_max      = config.mass_properties.max_takeoff
    weight_min      = config.mass_properties.operating_empty    
                
    # evaluate
    try:
        del config.maximum_lift_coefficient
    except: pass

    # weight vector to eval tofl
    weight_vec  = np.linspace(weight_min,weight_max,10)
    takeoff_field_length = np.zeros_like(weight_vec)
    
    # loop of tofl evaluation
    for idw,weight in enumerate(weight_vec):
        config.mass_properties.takeoff = weight
        takeoff_field_length[idw] = estimate_tofl(config,analyses, takeoff_airport)
    
    # return initial value for takeoff weight
    config.mass_properties.takeoff = ref_weight
    
    # pack results
    results = Data()
    results.takeoff_field_length = takeoff_field_length
    results.takeoff_weights      = weight_vec        
        
    return results