using new data API instead of using observers myself