fix typo
use an automatic variable instead of allocating on the heap
use strings for __all__ instead of directly referencing
fix exception specificity
raise IOError instead of returnin None on erronous reads
update readme