complete the data_set behaviour and pass tests