color$ = obs.
merge(obs.of(state => state),
load$,
internalLight$.map(lighten),
externalLight$.map(lighten),
input$(red, 'r'),
input$(green, 'g'),
input$(blue, 'b'))
.do(console.log)
.scan((state, fn) => fn(state), {r: 127, g: 127, b: 127})
.do(updateUI)
.share()