1. A method comprising: parsing a file to identify boundaries for a plurality of first level objects included in the file in order to determine whether each of the plurality of first level objects is compound or primitive, wherein a first compound object included in the file encapsulates a plurality of second level objects and a primitive object is the most basic representation of a discrete data structure in the file; recursively parsing the first compound object to identify boundaries for a plurality of second level objects included in the first compound object; determining whether each of the plurality of second level objects is compound or primitive; identifying a plurality of lowest level primitive objects, wherein the plurality of lowest level primitive objects are basic representations of discrete data structures, wherein metadata for each of the plurality of lowest level primitive objects is stored redundantly in a suitcase file, and wherein deduplication boundaries are set at boundaries of the plurality of lowest level primitive objects; decompressing the plurality of lowest level primitive objects; recompressing the plurality of lowest level primitive objects with a plurality of object specific optimization algorithms.