refactored, more fluent light changes