FileIO and requirement2 and 3 are done