fixed trigger recursion bug