fixes to avoid recursion