LZW   refactored
LZW   refactored