changed EncounterListPersister to be generic