change the way to get data