@classmethod
def parse(cls, name, data_size, reader, parsers):
    """given a 4 byte name, data_size int, BitstreamReader
        and dict of {"atom":handler} sub-parsers,
        returns an atom of this class"""
    version, flags = reader.parse('8u 24u')
    return cls(version=version, flags=flags, blocks=[tuple(reader.parse(
        '32u 32u 32u')) for i in range(reader.read(32))])
