Refactoring the fade handler, still need to introduce a ColorDelta interface to separate the timer controller from the target.