consider returning the decompressed DTO rather than copying into the one passed in