add retrace function