--- tags: Setup --- # Lecture 17 Setup/Prep When we last looked at the banking code, we'd reorganized everything into the model-view-controller architecture. Things still aren't working quite right though. For example, login errors still give access to certain account operations, and there's no way to prompt someone to try logging in again if they make a mistake with their username and password. This lecture, we will work on getting the bank to re-prompt people on login errors. ## Prep Download the [starter code](https://brown-cs18-master.github.io/content/lectures/17exceptions/lec17init.zip). Changes since you last saw it are - a `CustomerList` class - interfaces to allow the `BankingService` to choose its data structures - a list of logged in users in the `BankingService` These changes are mostly there so you can see where the code would be after the last lecture. This lecture, we will focus on the `loginScreen` in the `BankingConsole` and on how to get it to reprompt on failed logins. If you prefer, here is a [condensed PDF file](https://brown-cs18-master.github.io/content/lectures/17exceptions/startercode.pdf) of the essential code for today.