updated hal deserialization to handle embedded arrays and multiple embedded objects