let's avoid infinite recursion, shall we?