add optional function to tr