Added some comments
Moved Reference inside Packer, no use to make it more generic than that, it only costed extra memory and it was never used somewhere else