Creating a Dynamic Data Enrichment Pipeline with Composable Functions