implementation of data and model