add loop detect