OK, missed a few possible exceptions, also read headers the same way throughout the codebase