optimize data()