better color parsing, etc