public BorrowUC_CTL(
      ICardReader reader,
      IScanner scanner,
      IPrinter printer,
      IDisplay display,
      IBookDAO bookDAO,
      ILoanDAO loanDAO,
      IMemberDAO memberDAO) {

    this.bookDAO = bookDAO;
    this.memberDAO = memberDAO;
    this.loanDAO = loanDAO;

    this.ui = new BorrowUC_UI(this);
    this.reader = reader;
    reader.addListener(this);
    this.scanner = scanner;
    scanner.addListener(this);
    this.printer = printer;
    this.display = display;

    state = EBorrowState.CREATED;
  }