code review
fix circular referrence problem.