service layer implemented