add funtion pointer