Added an exception for EOF. Added a test for this new exception. Moved exceptions to their own files.