unmarshall & validate