Fix recursion to be nicer and to include dirs