term: allow discard
post: simpler unmarshal