uses cleanup hook for timecop, too