Fixed the silly recursion, but it still doesn't work very well.