language changes: std::vec -> std::slice.
language changes: no longer uses an owned vector with an exception of Palette.