changed input type of LooseObject.read to avoid unnecessary wrapping