separating data and objects