Add darken and lighten.
Improve complement calculation.