implemented read file