Added structs (untested) for loading hw manager manifests & refactored code to ensure we read all the file before attempting to unmarshal
Reverted some changes - I should really read the documentation for file.Read