Introduce service layer