Changed some of the logic around.

Could still get odd recursion issues