i think this should fix infinite recursion