 
 	}
 
-	// methods to return the values of the characteristics and their log-densities
-	vecvec GetChi()
+	// setters and getters
+	void SetChi(dvector& chi) {
+		d_chi = chi;
+		h_chi = d_chi;
+	}
+	void SetLogDens(dvector& logdens) {
+		d_logdens = logdens;
+		h_logdens = d_logdens;
+	}
+	vecvec GetChi() // return the value of the characteristic in a std::vector of std::vectors for convenience
 	{
 		vecvec chi(ndata);
 		// grab values of characteristics from host vector

		}
		return chi;
	}

	// access to private data members
	hvector GetHostLogDensPop() { return h_logdens_pop; }
	dvector& GetDevLogDensPop() { return d_logdens_pop; }
	hvector GetHostLogDensMeas() { return h_logdens_meas; }
	dvector& GetDevLogDensMeas() { return d_logdens_meas; }
	double* GetDevChiPtr() { return thrust::raw_pointer_cast(&d_chi[0]); }
	int GetNdata() { return ndata; }


	}

	// make sure that the data augmentation knows about the population parameters
	void SetPopulation(PopulationPar<ChiType>& t) {
		Theta = t;
	}

