I don't like introducing these three new atom reading functions that are used just for this one purpose. If this was part of an overall refactoring of the metadata parser, it might be a good change.  (Though I'd worry about the object creation in readAtomHeader)