TODOs: - Better API Documentation. - Robust error handling. - Any special handling for linearized PDFs? - Support writing/creating PDFs.