update Persistence Layer and add Service Layer