updated data extraction functions