redesign dao and service