new data and some logic modified