mmmm. color.
refactor to use delegation pattern with method_missing()
more tests (some failing due to #588)