refactor the Exceptions: split the BankException to IllegalArgumentException and DuplicateExcption