diff --git a/mbtrack2/impedance/impedance_model.py b/mbtrack2/impedance/impedance_model.py
index f4a557ed583632321674ffeb05a24900604c3958..2985cb784e8c79bca6ea6718ff3bfe7730af5636 100644
--- a/mbtrack2/impedance/impedance_model.py
+++ b/mbtrack2/impedance/impedance_model.py
@@ -531,6 +531,9 @@ class ImpedanceModel(Element):
     def save(self, file):
         """
         Save impedance model to file.
+        
+        The same pandas version is needed on both saving and loading computer
+        for the pickle to work.
 
         Parameters
         ----------
@@ -550,6 +553,9 @@ class ImpedanceModel(Element):
     def load(self, file):
         """
         Load impedance model from file.
+        
+        The same pandas version is needed on both saving and loading computer
+        for the pickle to work.
 
         Parameters
         ----------
diff --git a/mbtrack2/impedance/wakefield.py b/mbtrack2/impedance/wakefield.py
index f21b31758500b59e6e17aeb7dc97f7d624ea3098..5b6f92ab90e6885b1d0d147bb733068c391f079e 100644
--- a/mbtrack2/impedance/wakefield.py
+++ b/mbtrack2/impedance/wakefield.py
@@ -5,6 +5,7 @@ wake functions.
 """
 
 import warnings
+import pickle
 import pandas as pd
 import numpy as np
 import scipy as sc
@@ -667,6 +668,12 @@ class WakeField:
         Add two WakeFields taking into account beta functions.
     add_several_wakefields(wakefields, beta)
         Add a list of WakeFields taking into account beta functions.
+    drop(component)
+        Delete a component or a list of component from the WakeField.
+    save(file)
+        Save WakeField element to file.
+    load(file)
+        Load WakeField element from file.
     """
 
     def __init__(self, structure_list=None, name=None):
@@ -736,6 +743,79 @@ class WakeField:
                  "Zlong", "Zxdip", "Zydip", "Zxquad", "Zyquad"]
         return np.array([comp for comp in dir(self) if comp in valid])
     
+    def drop(self, component):
+        """
+        Delete a component or a list of component from the WakeField.
+
+        Parameters
+        ----------
+        component : str or list of str
+            Component or list of components to drop.
+            If "Z", drop all impedance components.
+            If "W"", drop all wake function components.
+
+        Returns
+        -------
+        None.
+
+        """
+        if component == "Z":
+            component = self.impedance_components
+        elif component == "W":
+            component = self.wake_components
+        
+        if isinstance(component, str):
+            delattr(self, component)
+        elif isinstance(component, list) or isinstance(component, np.ndarray):
+            for comp in component:
+                delattr(self, comp)
+        else:
+            raise TypeError("component should be a str or list of str.")
+            
+    def save(self, file):
+        """
+        Save WakeField element to file.
+        
+        The same pandas version is needed on both saving and loading computer
+        for the pickle to work.
+
+        Parameters
+        ----------
+        file : str
+            File where the WakeField element is saved.
+
+        Returns
+        -------
+        None.
+
+        """
+        with open(file,"wb") as f:
+            pickle.dump(self, f)
+            
+    @staticmethod
+    def load(file):
+        """
+        Load WakeField element from file.
+        
+        The same pandas version is needed on both saving and loading computer
+        for the pickle to work.
+
+        Parameters
+        ----------
+        file : str
+            File where the WakeField element is saved.
+
+        Returns
+        -------
+        wakefield : WakeField
+            Loaded wakefield.
+
+        """
+        with open(file, 'rb') as f:
+            wakefield = pickle.load(f)
+            
+        return wakefield
+    
     @staticmethod
     def add_wakefields(wake1, beta1, wake2, beta2):
         """