IDAL<-DAL
       \     /
IBLL<-BLL
      | /
      ui