#5: Raise an IOError, not a KeyError when trying to open a non-existant file
#5: Lets remember .18's timestamp