half of service layer