fix too much recursion