I/O refactoring: New base class (DataFile) and IHeader interface