reduce some lines
add callbacks
add color parsing
add test file