fix duplicate callback