add service layer and spring transactional annotation