Add some extra logic for handling when the file's modified time is newer than the sample graph
...and also check that the file is even valid before checking all of that other stuff...  and have the file-exists checking done in the constructor, and resulting in an instance that will return False for is_valid() if the file does not exist or can't be read...