Added ctinfo

Factored out file opening logic into the readers module, and tidied up a
few miscellaneous bits