solution BLL + DAL