wrapping the FileReader API in promises