data transformation logic