Remove use of separate array for scale values.
Refactored internals to use a vector of structs instead of several parallel arrays.