Add data driven function