recursive fix