Fixing typo.
Adding a strict file reader.
Using a mock object for testing.
Using a mock object for testing.
Removing hardly shared code.
Using a mock object for testing.