fixed recursion things