- add compression support
- remove unneeded code
- change log warning to exception
- document