fixed recursion thing