Split out general read function for header
Probably need to rename this class as it does too much.