Shouldn't this inherit from `Document` ?