Separating DAO and services to AbstractDao and AbstractService