refactor open
review read file