Use a custom file reader service

This is a small refactoring introducing a custom FileReader service using a promise.