Patch Set 4: Looks good to me, but someone else must approve

(3 inline comments)

I don't think the no-argument constructor is necessary but am not going to downvote as it's a trivial thing which can be resolved subsequently.