FileIO done, still can be improved