added LZW compression algorithm