proper data loop