def add_sample(self, samp_name, site_name=None, er_data=None, pmag_data=None):
        """
        Create a Sample object and add it to self.samples.
        If a site name is provided, add the sample to site.samples as well.
        """
        if site_name:
            site = self.find_by_name(site_name, self.sites)
            if not site:
                print("""-W- {} is not a currently existing site.
Creating a new site named: {} """.format(site_name, site_name))
                site = self.add_site(site_name)
        else:
            site = None
        sample = Sample(samp_name, site, self.data_model, er_data, pmag_data)
        self.samples.append(sample)
        if site:
            site.samples.append(sample)
        return sample