optimization up to getting data