read_file functional