decoding worker thread moved to executor, interruption checking simplified, animation starting moved to constructor,
unused return method values removed