documentation of service layer