fix duplicate cleanup callback