implemented File::r