Is there a way for me to combine these 3 methods into just 1?
===

 Basically, I have 3 delegate methods that have almost the exact same code except for 1 line in each and the parameters. I realize that I can encapsulate a lot of the code to make 3 or 4 lines of code in each method, but I'm wondering if there's a way to create just 1 method.

Also, the methods being called on `tempData` have the same method name as the delegate methods below, but they are actually different methods.

    - (void)addElement:(NSString *)currentElement FromKeyboard:(NSString *)name {
        
        UIView *tempView; 
        NSMutableArray *tempViewList;
        EquationData *tempData;    
       
        
        if ([name isEqualToString:@"leftEqCellKeyboard"]) {
            tempData = leftData;
            tempViewList = leftEqViewList;
            tempView = equationCell.leftView;
        }
        
        if ([name isEqualToString:@"rightEqCellKeyboard"]) {
            tempData = rightData;
            tempViewList = rightEqViewList;
            tempView = equationCell.rightView;
        }
        
        [tempData addElement:currentElement]; // different
       
        if ([tempViewList count] != 0) 
            [self clearViewsStoredIn:tempViewList];
        [self setUpView:tempView fromArray:tempData.equation toArray:tempViewList];
    }
    
    - (void)changeState:(NSString *)stateName FromKeyboard:(NSString *)name {
       
       UIView *tempView; 
        NSMutableArray *tempViewList;
        EquationData *tempData;    

     if ([name isEqualToString:@"leftEqCellKeyboard"]) {
            tempData = leftData;
            tempViewList = leftEqViewList;
            tempView = equationCell.leftView;
        }
        
        if ([name isEqualToString:@"rightEqCellKeyboard"]) {
            tempData = rightData;
            tempViewList = rightEqViewList;
            tempView = equationCell.rightView;
        }
    
        [tempData changeState:stateName]; // different
    
        if ([tempViewList count] != 0) 
            [self clearViewsStoredIn:tempViewList];
        
           [self setUpView:tempView fromArray:tempData.equation toArray:tempViewList];

    }
    
    - (void)changeCharge:(NSString *)chargeIncrease FromKeyboard:(NSString *)name {
    
        UIView *tempView;
        NSMutableArray *tempViewList;
        EquationData *tempData;   

    if ([name isEqualToString:@"leftEqCellKeyboard"]) {
            tempData = leftData;
            tempViewList = leftEqViewList;
            tempView = equationCell.leftView;
        }
        
        if ([name isEqualToString:@"rightEqCellKeyboard"]) {
            tempData = rightData;
            tempViewList = rightEqViewList;
            tempView = equationCell.rightView;
        }  
        [tempData changeCharge:chargeIncrease]; // different
        
        if ([tempViewList count] != 0) 
            [self clearViewsStoredIn:tempViewList];
        
        [self setUpView:tempView fromArray:tempData.equation toArray:tempViewList];
    
        
    }

