refactor service, dao layer to generics #12,#13,#14