Why not just do all of this (except the header text) in the constructor?  Having htmlNode guaranteed to be defined would be nice so that other methods don't have to worry about the case where it is undefined.