added basic LZW compression