fixes recursive stuff