Used brushes instead of boolean. Not as clean, but provides for the yellow light.
Added additional logic for light behavior.
Accounted for edge cases.