Initial version.
Need more test and decompresion optimization