use the optimized unmarshal function