better feedback when save fails and raising Exception rather than IOError because it's not certain that the latter occurs