chapter 15 : file manipulation CRUD (complete)