concrete persistence implementation no longer hardcoded in service layer