mostly use service layer and dao layer