refactor parsing as a struct-based, start zlib inflation