leftovers
changed throw type to std::runtime_error to avoid confusion
added transformation matrix and varying color