Add guard to avoid the possile recursion