Refactored for clarity of uncle's color
fixed merge conflicts