diff --git a/ASCII Art b/ASCII Art
new file mode 100644
index 0000000..04dd4fa
--- /dev/null
+++ b/ASCII Art
@@ -0,0 +1,312 @@
+Roberto
+
+****************************(%%%%%&&&&&&&%(//******************************,***
+***********************/(%&&&@&@&&&&@@&&&&@&&&&@(******************************
+*//**************,*(%&&&&&@&&&&@&&&&&@@@@@@@@@@@&&%@&/***********************,*
+(/*/***********/%&&&&@&&&&&&&&@@@@@@@@@@@@@@@@@@@@@&@@@@%**********************
+*/(//********#&&&@@&@@&&&&&&%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*******************
+****(/*****/&&&@&&@&@&&&@@@@@&&%%%%%&&%%%%%%%&&&&&@&@@@@@@@@@(*****************
+******(///(&&&&&@@&&&&&%%#((/////////*******////((###%&@@@@@@@#****************
+*******/((&&@@&&&&&%%(//*************************////((%&@@@@@@#***************
+*********%&&@@@#(/***,,,,,,,,,,,,,,,****************//(#&@@@@@&/*************
+********#%&@&&(/***,,,,,,,,,,,,,,,,,,,,,,,*,,************/(%@@@@@@&************
+*//****(&&&&%(*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*********//#&@@@@@@%***********
+///***/&&@&%(/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**********/(%@@@@@@@/******,***
+//////%&@&%#/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*********/(#&&@@@@@&**********
+/////(@&&(*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*********//#%&&@@@@@/*********
+/////#&&%#(/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**********/(%%&%@@@@%*********
+/////&&(/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*********//(#%&&&@@@/********
+**///%%%((/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*********////(##&&@@@#********
+****(%%#((*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*************//////(#%&&&@%*/******
+****(%###/*,,,,,*///(%%#####(*,,....,..,,,/(###%%%%%#//(////////#%%&&@&********
+****(%###*,,,*//(((#(((/////***,,,.,,,,,,**//////(((#((((##(////(%%&&@%********
+/*//(%##(*,,//**//**********,,,,,,,,,,,,*****/*******//(((#%(///(%%&&&%********
+****(%##(,,*/**,,,,,,**********,,,,,,,***///////////**//////((///%&&@&%/////***
+****(%##/,,*,,,,,,*******//(//**,,,,,,*////(((/((%#(//((/////////#&&&%////(///*
+****/#%#/,,,,,**/**#&@@%@%((///**,,,,**////(#(*&&(@&(#&(//*////(&@#////**/***
+***,,/%%*,,,,,**(#(((###(/((((***,,,,**/////////////**/////***///(%&//*********
+(***,,(%**,,,,,**,,,,,,,********,,,,***/////**////*************//(#&(//********
+/**,,*/#**,,,,,,,*****/****,,,,,,,,,,**/*//********************/(/#&/*,,,,*/***
+*/,,,,#(**,,,,,,,,,***,,,,,,,,,,,,,,,*///********,****,,,*****//((#&(*,,,**/***
+/*,,,,((**,,,,,,,,,,,,,,,,,,,,,,,,,,,,*///*****,*,,,,,,,,*****///((&/***/*/****
+**,*,,/#*,,,,,,,,,,,,,,,,,,,,**,,,,,,,,**/////*,,,,,,,,,,,***////((*//*/*****
+//,**,/#*,,,,,,,,,,,,,,,,***,,,,,,,..,,******//**,,,,,,,,,***////(#@%//***/****
+*/****(%*,,,,,,,,,,,,,,*****,,,,,,,,***//(/////*******,,****/////(#@&/****(****
+***,,,/%/***,,,,*,,,****,,,**//*****/((///(((//************////((#&@&////(/****
+/*/,,,(%(*****,****/*****///(#%%%#/////##&&%%###(#((((((///////((%&@(##(*****
+/*/(,,(&%*********(#####%&%&&&%%%%&%%%&%&&&&@@&&&&&&&&%%#/////((#&@@&&%#/******
+***(#(#&&(*******(#%%%%%%%%%&%%%%%%&&&%&%&&@&%&&&&&&&&((/((#%&@@&((((/////*
+****/(#%%%(*****(%%&&&&&&&&&&%%&%((#(#%#%%##%##%&&&@@@@&((((#%&&@@&((((//////
+****//(%&%%(**//#%%&&&&&(####(//***,,*...,,/((##((#&&&&&%%##(#%&&@&@%/((((/////
+*****/(&&&%#(//#%%%&&&(////*****/****/////(((//((%&&@&&&&%&&@@@@%///((((/((
+*****//%&&&%%###%%%&&&%%#(///*****/******//(////((#%@&&&&&&&%%&@@@@@#/*///((((/
+*//**//#&@&&%%&%%%&&@@&%%((/((/((((#(((######(###%%%&@&@@@@&@&&@@@@@#/***/*/(((
+****/*/%&@@@&&&&@@&&@@&&%%%%&%%&%%&&&@@@@@%%%%&&%%&&@@@@@@@@@@@@@@@&(/*****/*((
+****///#%@@@@&@&@@@@@@@&&&&&&&&&&@@@@&@@&&%%%@@@&@@@@@@@@@@@@@@@@@&%/********//
+***/**/(#&&@@@@@@@@@@@@@@@&&&&&&&&@@@&@&&%&&&&&@@@&@@@@@@@@@@@@@@@%(***********
+/*/***//(%%@@@@@@@@@@@@@&@@@&&&&%##%%&&%&%(&&&@&@@@@@@@@@@@@@@@@@%(/*//********
+****/***/#%&&@@@@@@@@@@@@@@&&&&&&%%#%%&&&%@&&&@&@@@@@@@@@@@@@(//*****////**
+*/*//***//#&@@@@@@&&@@@@@@@@@&&@%&%%#%#&%%&&&&@@@@&@@@@@@@@@@@@%((//****///***/
+/*****//**#&&&&&&&@@@@@@@&@@&&&&&&@&@&&&@&&@@@&@@@@@@@@@@@@@@@&(((**/////***//*
+////******(#%%&@@@@&@@@@@@@@&&@@@@@@@@@@@@&@@@@@@@@@@@@@@@@@@%(//(%@@@#/***//**
+*******///*(#*#@@@@@@@@@@@&@@&@@@@@@@@@&@@@@@@@@@@@@@@@@@@@@%(///((((//&@#///*/
+**/***/&@@@&*,,*/&&@@@@@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&(//*///(////(&@@@@@%
+//#&@@@@@@@/*,,,,/(%@@@@@@@@@@@@&@@@@@@@@@@@@@@@@@@@@@@@&%(/***///(//*/(@@@@@@@
+@@@@@@@@@@@/*,,,,,,,/#&&&@@@&@@@@@@@@@@@@@@@@@@@@@@@@&%(********///(/**#@@@@@@@
+@@@@@@@@@@@/*,,,,.,,,,/(((#&&@@@@@@@@@@@@@@@@@@@@@@%(/**********/////*/@@@@@@@@
+@@@@@@@@@@@%*,,,,,,..,,,,,**(#%%%%&&@@@@@@@&%&&%(*************//////&@@@@@@@@
+@@@@@@@@@@@@/,,,,,...,..,,,,,******(%&&@&%%#/(///*****,***********/**@@@@@@@@@@
+@@@@@@@@@@@@@/,...........,,,,,,,***(((((//*********,,*************/@@@@@@@@@@@
+@@@@@@@@@@@@@@#,,.......,,,,.,,,,,,****************,,,,***********%@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@*,.......,,,,,,,,,,,,,,,,**,*******,,,,,,,*****,(@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@&*,,.,,,,,,,,,,,,,,,,,,,********,*,,,,,,,,,,,*&@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@&*,,,,,,,,,,,,,,,,,,*********,,,,,,,,,,,,*%@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@#*,,,,,,,,,,,,,,,,,,,****,,,,,,,,,,,/&@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@#/*,,,,,,,,,,,,**,,,,,,,,,,,,,*%@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%(****************,,,,/#@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%####%%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
+
+Kris
+ ... ,,.......** .*,,**///*,.. ..,,,,,.,,,***//***, ....... .... .,,..,,. ,,**,,,*.
+ ....,,...***,,,,**,,,,...,. ,,....... . ..,,,........**, .,..,...
+ ..... .,**..,,*******,,,. .. . ..,.. ...... .. .,
+ ,,. .,**.,*,,,..,, .. ... ...,,..,***,..,,..,...........
+ .,,,*******,,,**, ....... ........ ... .,**,*.....***,.,**. ,*,,....
+ .,.,...,,...,. ..............,,,,,,,,.... .,/*..,,*/(/,,**,*/**..,****..,. .
+ ........ ............................... .,//,. */(/,,*,,,,,,,.,,***,....
+ .,,,*, . .. ...... ......,,.............,,,,,,.. .,,,,,.***/* ,*,..,,..,,*,,,,,....
+ ...,,,**,, .... ............,,,,,,,,,,,*******,,,,,,,. ,*,,///(/*,. ...,,,,.,*/***,,...,,...,,
+ ,,***,.... ...............,,,,,,,,,,,,***********,,,,,,,,. ,*((//(/*,, .. *///////*,,,,,*,.,,.
+ ..**,******. .......,,,,,,,,******,,,,******////****,,,,,..,... .*((**//*//****,,,,***(((/**,*******,..,...
+ .,**,.,**** ....,,,,****************//////////*********,,,,.,.. .//////(((/*,,**,,*((//(////(/**,/*,***,..
+ .,,*,,**,. ..,***********/////////((((//////***********,,,.,,.. ,,,,,*////*** .*/(/**///*/((/*///**//*,,,
+ ,,,,,,*. ..,**********///////////////////////////*******,,,,,.. .,*...**(/.,.. .,*/////,,/((/////***,,..
+ ...,,,,,. ...,*///********///////////////((////////*********,,,.. ...,///,,..,...,/(/////(/**//(/*,. .
+ ...,**.. ..,**//******//////////////////////////***********,,,,. ,,.,..*((//**..,,.,*((((**(/,,,,*,...
+,. . ...,,,, .,,**/*****/////////////////////////************,,,,,,,.. ,,,,,.,*/#(**,*,.. ,*/*,,,,. ..,,..
+**,.,, .... .,,********////////////////////////*************,,,,,,.,.. .,*//..**,,,,.,,....... . ....,,*/,.
+/*,,..... .,,,,, ..,********///////////////***//////////*********,,,,,,,... ..,,,,.,*...,*,. .....,,. ,,,,,*//..
+*//***...,,,,,***,. ..,,,*****////////////*******///////(/////(///////**,..... ,* .. .,*,**.,*..,,,**,*..****,.,*
+,*//..*,. .,***,... ..,,,*****///////////*////////((((((((##########(((//*,... .*, .. .,*. ....*,..*//,,*****,,,
+,,,,..**,,,,,,,..** ..,,,*****//*//////////((((((((#######%%%%%#######((##/*...**,**, .. ,..,,**//*//***,. .,*/
+.. .,,**,..,***, ....,********/**///((((############%%%%%&&&&&&&%%%%%#(/*,..,*,,//***,...... .,.......... ,*//
+ . .. . ...,***,,,. ....,,,*******////((################%&&&&&&%%%%##(((/******.,**,..*//*,**,. .,,*, ..,.,*. ,/
+*/(/,,.,*,,. ,**,,**,. ...,,******//(((#####%%%%&&%#((//(#%%%%%%%######(********,.,,*//****//*,,,..,** ......,,,,..,
+,*//.. .,//**,,*,,,,......,,******///((##&&&&&&&&&%%((////((########(//**********,.,,//**/*//,,,,.,*..,,,,,..,***,*//.
+,***,,.... ..,*..,,,***,,,,,***////(%%%%%%%%%%%%%##((/////((((((((////////******,...,*****,.,,,..,..,*/(/**,,.,*,.,,,*
+ .//*/,. .,. .. ..,*((,,****/(###(((((###%%###(((//****//((###(((///((((//****,.,,. *(/*,.. .*/**((*,,,.,,,, ...
+*,... .,,, ./(,,,,**/////((######(((((/////**,***////#%%%#######((/**/*,. ...***,,. ,//*/(/*,. ..,...,,
+,,*,..... .... ....,/**,,****////////////(((((((//**********/(&&%%%%%####((///*,. ...,,*//**,,*/(///*,,*,***//*
+*,..,, .. .. ,, ....,*/(,,**//////////////(((#(/////////////((#%%%%%%%%%###(////*.. .. ,///**/(///,,,*//,**,
+..,, . .,.. .....*//**..//*,***///////////(((#%%(/////((####%%%%%%%%%%%%%%####(((//,.. .,. ... .*/*,//(((////##(*..
+(/.. ,,.,//* ..,*/*******,,****///////(((##%%%%#(((#######%%%%%###%%%%&%%######((/,.,..,*//,..,/,,*//*,*/(((##(((/*,
+((*/*,*/*,*/*,,.,*/*,,*/((***********//((((##%%%%%###%%%%%%%%%%%###%%&&&&&%%#######((*,....***,. ..,**////**/,,**/(/**/
+%%####**/(/((/***///((#####/******/***/((###%%%%%#########%%%%%%%%%%%@@&#######((,.***,,,... ,,**(((#(//*,.******,
+(#%#((((((((((//(%########%&(****///**/((##%%%%%##((########%#######%&%%%%##(((####(/*, .,..... .,*/***,.*/,....
+###(//(///((//*/(#((((######(//**///////(##%%%&&&&&&%#(#(((((((###%%##########(####(/((.
+%%#(((//**(#(((((/*/((//(((((#(/**/////(((##%%&&&&&&&%#(#####%###(((((##(((###(###(//#%,
+%%((((//*.*//...,/*,,(####/,/(#(***////((((###%%%%##(((((((((####(((((((((((######(//%&*. ...
+###(((///,.***,,..,....,/##(/(%%(/**//(((((((#%%##((((((((#######((((((((///((##((/(#&&*.....
+#(////,. .. ....., .,((##%%%%***//((((((####(((((((((((((((((((((((////((#((((#%&&*. .. ....
+,,,***.. .,, .***,...,/##%%%%(/**///(((((##((((((((((((((//////////////((((((#%&&%*. .. ....
+,,(((/,...,,,*, ..,***///((((##%%#*,**//(((((((((((((///(((////////////////(#((((%&&,. ........
+..*, ...,*/*,,,..,***. */**(###, ,*////(((((((/////(((((//(((//////((((((#(((#&&&,. ................
+ ...,,.,,, .*//,***..,*/(/.. .,. ..*////((((((//////(((((((((((#######(######%&&((#(*...,..................
+*,..*///,,***,,***,.,,,,**//. ..,//////(((((//////((((((#################%%&&/(#(*.,,,...,,,.............
+,. .,*//((/,,..******,,,.. ......,/#(//////((((//(((((##################%%%&%#(/*/,,,,,,,.......................
+,,......*/..*##(/,*/*,,, ..,..,,(%#(//////(((((((((################%%&(((/,,,,,,,,,.....................,,
+****,,..//,*(#(####/, ..............,*#%%#((((((((((((#################%%(((/**,****,,...................,,,**
+(**(#(../(##%%#%%, ..... ....,,...,,*#%&%#(((((((((((((((#########%%&(((/*******,,.................,,******
+%%%#%%##//#%%#(. ...................,,,.,,,**#%&&%%##(((((###########%%&&&&(////******,,................,,****////
+#%%%#######/* .............,,,,,.....,,*,.,,*((#%&&&&&%%%%%%##%%%%%%&&&&&%#//***////*,,...............,,,*********
+%%%##%%%#(. . ........,,,,,,,,,,,,***(%&%#(//#%&&&&&&&&&&&&&&&&&&&&(//**////**,,............,,,,,,,,,,,,,,,,
+##%#%&%(. ................,,,,,,*****/(%&&%(/**/((#%&&&&&&&&&&&&&%(/**/////*,,,........,,,,,,,,,,,..........
+(/(%&%*. ..............,,,,,,****/((%%%%((/////(#####%%%&&&&(/*/((///*,,,,,,,,,,,,,,,,*******,,........
+((((*. ......... .........,,,,,,***////(###############(((#%#/*/(((//*****************************,,....
+##/, ......,,,,,..................,,,,,***////(((((((((#########//////((/////////////////////////////////****
+/* ...........,,,,,,,,,,.............,,,,***////////////////(((/**////((/////////////////////////////////////
+. ................,,,,,,,,,,,,,,,,,,,,,,,,,,,********//////////////*//////////////***********************//////
+
+Chris
+(((((////////////////////////////////////***********************////////*. ....................................
+((((//////////////////////////////////***********************************. ..............................
+####((((((/////////////////////////**************************************. ..................
+(((((((((((((((((((////////////////**************************************. .,,,... ..........
+///////////////////////////////////////////****************************** .,**//(((((((//**,,...
+///////////////////////////////////////////////////////*********////*****. .......,,,,,,***//((((((//*,,,..
+/////////////////////////////****************/////////////((/////////////*.. ....................,,,,***//((((((//
+////////////////////////***************************/(((((////******************. ..............................,,,,,,,
+/////////////////////***************************/((#((((///////****,,,,,,.,,,***/*,............................,,,,,,,,
+/////////////////////*************************(##((((///////////***,,,........,,,***,......................,...,,,,,,,,
+//////////////////////**********************(##((((((////////////**,,............,,***..........................,,,,,,,
+((((((((((//////////////******************/###(((((((////////////**,,,,.............,,**,,,,,,,,..........,,,,,,,,,,,,,
+///////////////////////////////////////*/(#########((((//////////***,,,,,.....,,.....,,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+///////////////////*********////////////%%%##########((((((/////***,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+/////////////////**********************#%%%%##%%%####(((((((/////**,,,,,,,,,,,,,,,,,,,,,***,,,,,,,,,,,,,,,,,,,,,,,,,,,*
+//////////////************************(%%%%%%%%%%#%##((((////////**,,,,,,,,,,,,,,,,,,,,****,.,,,,,,,,,,,,,,,,,,,,,,,***
+//////////////***********************(%%%%%%%########(((#%&&&%%#((//**,,,,,,,,,,,,,,,,,,****......,,,,,,,,,,,,,,,,,,,,,
+/////////////************************#&&&&&%%########%%&&&&%%%%&&&%#(/***,,,*,,,.,,..,,,,***..............,,,,,,,,,,,,,
+///////////////*********************/%&&&&&%%%#####%%&((//////(%%%%%#((/*****,,,,,,.,,,***,..........................
+///////////////////*****************(&&@@@@&&%%####%%######((((/((###(((((/*******,**,,,,****..
+(((((((///////////////////////****//(%&&&&&%%%###%%&&&&&&(((//((((###((//******/((#######(/,......
+/////////////////////////////////(&&&((&&&%%##((((((#%%&&%%%%%#####(((((((////////(((#%%##%%%(........... ..
+/////////////////***************/####%%&&%%#(((///////((#(####(#((##((///**/***/((####((//*/(#,........................
+////////////***/***************/(((((#%&%%##((//////***//***////////**,,,*//,,,/#%(##((((/////.........................
+////////////*******************/(((/#%%&%%##((/////*******,,,,,,,,,,...,*((*..,*#((#%%#((((*,,**,,,,,,,,,,,,,,,,,,,,,,.
+//////////////******************/(////(%%###((////*********//*,,....,,,,*/*,,..,/,.**//////*..,,,/*,,,,,***************
+//////////////*//***************//(//(#&%%%#(((/////****,,,....,,*//(((*,*,,..........,,***,,,,**((*,,,****************
+////////////////*****************(/((#%&%%%##((/////****,,,,......,*//*,,,*,......,.......,,,,*,****,,,*********,,,****
+/////////////////***************/&%#(%&&&%%%##(((/////*****,,,,,,,,/((///((//****,,***,....,//******,,,**************,,
+((((////////////////////////////#&&&&@@&&&&%%##((((///////*****,,,,*(#%%%&@##(%%(*,,...,,,***,,**,,,,,***************
+////////////////////**********/#%%%%&@@&&&&&%%###(((/////////****,,,**/(####%%%%%%(,,,......,******,,,,,***************
+//////////////////***********/%@@%%%%@@&&&&&%%####(((((///////((((((((###%%#(#%#(*,,,,,,,,,,,,*****,,,,,,**********,,,,
+/////////////////**********/%&@@@@%%%@@&&&&&&&%%%###((((///###&&&%%#(////****///##(*,,*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+/////////////////********/(&@@@@@@&%%@@@&&&&&&&%%####((///(#%%&&&&%%%%%##((/////*/###(/*/*****,,,,,,,,,,,,,,,,,,,,,,,,,
+/////////////////*******/%&@@@@@@@@@&@@@@&&&&&&&&%%%##((///###(((////**,,,*/(((#((#&%#(////***,,,,,,,,,,,**************
+//////////////////////*/#&&@@@@@@@@@@@@@@@@@@&&&&%%%%%%#####(/**///(((/***,,,..,/#&&&%((////*******,,,,,,**************
+///////////////////////(%&&@@@@@@@@@@@@@@@@@@@@&&&&&&&&%%%%%#///**///((##%##(/****/#%#////((*************/***//////////
+////////////////////%&&@@&&@@@@@@@@@@@@@@@@@@@@@@@&&&&&%%%&%%#/////*/////((((((/***(#(((###(((((####((########%%%%#####
+(((((((/////////(#%&&@@@@&&&&@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&%%#(///*************//#####%%%%%%%%%&&&%%%%%&&&&&&@&&%%%%%
+//////////////%&&&&&&&@@@&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%%#(((////*/******//##%%%%((((((((#%&&%%%%%&&&&&&&&%#(///
+///////////(#&&&&@@@&&&@@&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@&&&%%%%%####(((((////(##%%%%(/////////(%&&%%%%%&&&&&&&&((((
+////////(%&&&&@&&&&&@@@@@@&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%%%%%%%###(#%%%%%#(///////////(%&&%%%%%&&&&&&&&&%(((#
+/////(#&&&&@@@@&&&&&&&&@@@&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&%(,**///////////(%&&&%%%%&&&&&&&&&%####
+//((&&&&&&@@@@@@&&&&&&&&&@@&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&/ */((((#######%%&&%%#######%%&&%#((((
+%&@@@@&&&&&&&&&&&&&&&&&&&@@&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&%&%/////****/((#%%%%%#((((((((##%%%#((##
+@@@@@@&&&&&&&&&&&&&&&&@@@@@&&&&&&&&&&&&&@@@@@@@@&@@@@@@@@@@@@@@@@@@@@@@@@@&&&@@&%%&&%(/////(####%%%&%######%#%%&&&%%%%%
+@@@@@@&&&&&&&&&&&&&&&&@@@@@&&&&&&&&&&&&&&@@@@@@@@&&&@@@@@@@@@@@@@@@@@@@&&&&&&&@@@@&%%@&%%%%%%%%%%%&&%%###%%%%%%&&&%%%&&
+@@@@@@@@&&&&&&&&&&&&&&&&&@@@&&&&&&&&&&&&&&@@@@@@@@&&&&&&&&@@@@@@@@&&&&@&&@&&&&&@@@@@@&@&%########%%%#########%%%&&%%%%&
+@@@@@@@@&&&&&&&&&&&&&&&&&&&@@@&&&&&&&&&&&&&@@@@@@@@@&&&&&&&&&%%%%%%%@@@%&@&&&&&@@&@@@@@&&%#((((((##%#(((((#####%&&%#%%%
+@@@&@@@&&&&@@@&&&@@&&&&&&&&&@@&&&&&&&&&&&&&&&@@@@@@&&&&&%%%%%%%%%%%&@@##%@@@&&&&@@&&&&@@@&&&%%%%%%%%%%###%%%%%%%&&%%%%%
+@@@@@@&&&&&&&@@&@@@&&&&&&&&&@@&&&&&&&&&&&&&&&&@@@@@@&&%&&%%%%%%%%%%######&@@&&&&&@&&&&&&&&&&%%%%%%%&%%####%%%%%&&&&&&&&
+@@@@@&@@@&&&&&&&&@@@&&&&&&@@@@@&&&&&&&&&&&&&&&@@@@@@@&&%&&&%%%%#######(%#%@@@&&&&&@&&&&%%&&&%%%%%%%&%####%%%%%&&@@@@@@@
+@@@@@&&&&&&&&@&&&&&@@@&&&&&@@@@&&&&&&&&&&&&&&&&&&&@@@@&&%%%%%%%%%%###((###&@@@&&&&&&%%&&&&%%&&%&%%%&%%%%%%%%%%%%&&%%%%%
+@@@@@@@@&&&@@&&&&&&&@@@&&&&@@@@&&&&&&&&&@@@@@@@@@@&&@@@&&%######((((((((###&@@@&&&&@&%%&&&&&%%%&%%%%##((((###((((((((((
+@@@@@&@@@&@&&&&&&&&&&&@@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%#%#%%%####(((((###@@@&&&&&&%%%&&&&&&%%%%#(((///((((((((((((((
+@@@@@@@@@@&&&&&&&&&&&&&&@&&&@@@@@@@@&&&@@@@@&@@@@@@@&&&&@&%#%%######(((((####@@@&&&&&&%%&&&&&&&&%%%((////((((((((((((((
+@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&@@@@&&&@@@@&&@@@@@@&&&&&@#%%#####((((((###&@@@&&&&&&%%&&&&&&&&&((///((((((((((((((
+@@@@@@@@@&@@@@@@&&&&&&&&&&&&&&&&&&&@@&&&&&@@@@&@@@@@@&&&&&@&%#%%#####(((((####&@@@&&&&&%%&&&&&&%&&&%(((((((((((((((((((
+@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&@@&&&&@@@@&@@&&@&&&&&&&&%%%%%###(((((#####&@@@&&&&&%%&&&&&&&&&(((((((((((((((###
+
+Dolio
+////////****////////////(////////////////////////////(/#%&@&&&&&&&&&&&&&&@&&&&%&%(//////////////////(((((//////////////
+////////****////////////(//////////////////////////(##&&&&&&&&&&&&&&&@@@&&&@&@@@&&%/////////////////(((((//////////////
+////////****//////////////////////////////////////#%&&&&&&&&&&&&&&@&&&&@@@@@@@@@&&&(//////////////(((((//////////////
+////////****//////////////////////////////////(#&&&&&&@&&&&&&&&&&&&&&&&&@@&&@&&&@@&@&&%#//////((((/((((((//////////////
+////////****////////////////////////////////(#&&&&&&&&&&&%%%%%%%%%%%&&&&&%&&%%&&&@@@@&@&%%%(///////((((((//////////////
+////////****////////////(//////////////////#&&&&&&&&%%%############%%%%%%%%%%%%%%%%&&&@@&(/////(((((///////////////
+////////****///////////((/////////////////#&&%#%&&%###(((#((######%%%%%%%%%%%%%%%%%%%%&&@@@&%#/(//((((((///////////////
+////////****//////////(//////////////////(%#########(((((((((#####%%%%%%%%%%%%%%%%%%%%%%&&@@%%(///((((((///////////////
+////////****//////////(((////////////////#%#######((((((#((((#####%%%%%%%%%%%%%%%%%%%%##%%&@&%#((/((((((///////////////
+////////****//////////(/////////////////(%##%####((((((((((#######%%%%%%%%%%%%%%%%%%%%####%%&&%((/((((((//////////////*
+////////****////////////(///////////////####(((((((((((((((#####%%%%%%%%%%%%%%%%%%%%%%%#####%&/((((((///////////////*
+////////**,*/(///////*//////////////////##((((/((((((((((((#####%%%%%%%%%%%%%%%%%%%%%####%###&&%(((((((///////////////*
+////////**,*/(/**//,////(//////////////((//(/(/////((((((#######%%%%%%%%%%%%%%%%%%%%%%########(((((////////////////**
+////////*,,*//**//*///(////////////////(///////////((((#########%#%%%%%%%%%%%%%%%%%#%#########%#(((((////////////////**
+////////*,,*/(*///////////////////////(/*//*////////(((########%#%%%%%%%%%%%%%%%%%%###########%#((((((((/////////////**
+////////*,,*/(/////////(((/////////////**/**/***/////(((#########%%%%%%%%%%%%%%%%%%#############/(((((((////////////***
+//////***,,,*/*****/////*/*//****//////***///**///////########%%%%%%%%%%%%%%%%%%%%#############%((((((//////////////***
+////////*,,*/(////////((///////////////***///**/**//((##%%%%%%%%%%%%%%%%%%%%%%%%%############%#%(((((///////////////***
+////////*,,*/(///////(((/////////////(***////********/(#%%&&&@&&&%%%%%%%%%%%%%%#%###########%#%#/((((///////////////***
+////////*,,*/(///////((((////////*(###*//*//**********(##%%%&&&&&&&&&%%%%%%%%%%%%%############%(////(/((////////////***
+////////*,,*/(///////(((((///////%#*/////**********((##%%%%%&&&&&&&&&&&%%%%%%%%%%%###(########%(/((////////////////****
+////////*,,*/(////////((((//////#%*/(**/**/////(((#%%#(%@@@&%&@&&&&%&&&%%%%%%%%%%&&&&%%%%%%%%%(((((((//////////////****
+////////*,,*/////////(((((//////#*/((/****///((((((//#&&@@&%%&@&&&&%%%%%%%%%%%&&&&&&&@&&%%##%(//(((((/(////////////****
+////////*,,*/(///////(((((//////((%%%%*****//(((((((/(#%%%&&%&@@@@&%##%%%%#%%%&&&&&&&&%%###%%(//(((((//////////////****
+////////*,,*/(////////((((//////#(%%%*******///((#%%%%%%&&&@@@@@&&%#((#%%##%%&@@@@@&&&%&%####//(((((///////////////****
+////////*,,*/(///////(((((/////*#/#%/********//((#%%&&&&&&&&&&%%%%#(((#%%##%%&&@@@@@@&%&%&%%(//((((((/////////////*****
+////////*,,*/(//////(((((///////(%*(%/*******///((%%%%&&%&%%&%%###(((##%%###%&&@@&&&&%%&&&%#(///((((((/////////////****
+////////*,,*/(////////((((//////*/************///(###%%%%%&&%%#(((((##%%%####%%&@&&&%###%%%#///((((((////////////******
+////////*,,*/(////////((((//////**(//**********//(#(##%%%%&%%%((((((##%%%####%%%%%&%%%%%%%%(///((/(((////////////******
+////////*,,*/(////////((((//////(/**/***********/(((##%%%&&&%(/**//(#%%%######%%%%%%%%%##%#//////////////////////******
+////////*,,*/(///////(((((/////#&%&%/***********//((##%&&&%%(/(%@@&((#%%#(((##############///////////////////////******
+////////*,,*/(////////((((////%@%%&&*******//*////((#%%%%%%%%###%&%%%(%%##%&%#%%##########///////////////////////******
+////////**,*/(///////(((((///%@&%&@#*******/**///((#########%%%##%%%%%%%%#%%%#((((###///////////////////////*******
+////////****/(//////((((((//#@#%###/******////*////(########%%%%%%&%%&%%%%%####%%#######(/////(((((/////////////*******
+////////****/(//////((((((/%##%&&&&*******////////(####((((##%%%%%%%%&&%##%#####%######(//////(((((/////////////******/
+////////****/(//////(((((/(&&&&&&&&***////////*///#%%////(##%%%&%%&&&%%#%######%###%(((///(((((//////////////*******/
+////////****/(//////(((/*%&&&&&&@@#****//////////(%&@%%####%%%%&&&&%%%%%#######%#%%///////((((((((///////////*******/
+////////****/(/////(((*/%%%%&&@@@@/***/////////((#%%%%(/(#((%&&&%&&&&&&%%%%%#%%%#%%%///////(((((((((//////////*******//
+////////****/(//////***%%%%&@@@@@%****///((////(((####((//(((#%&&%&&&%%%%%&%&&%%#%%(/((//(///((((((////////////******//
+////////****/(////***(%%%%%@@@@&@/***////(((((/((((#(((((((((##%%%%%#(##%%%%%%%%%%@&&%##((//(((((/((///////////******//
+////////****((//***/#%%%%%%@@&@@#/***////((((((///((((((###%%&&%%&%%%#%%###%%%%%&@@&&&&%%%%####((((///////////******///
+////////****(/**,*/#%%%%%%&@@@@@#///////(((#####((((((((###%%&&&&&&@&%%##%%%%%&@@@@@&&&&&%%#%%#####(//////////******//(
+////////********,/%%%%%%%%&@@@@(//////(((###############%%%&&&&%%#####%%%%&@@@@@@@&&&&&&&%%%%%%##(////////******//(
+//////*///*******%%%%%%%%&@@@@@&%#(////(((#######%###%#%%%%&&&&&&&%%%%%%%&&@@@@@@@@@&&&@&&&&&%#%%%%%%&&%(/////******//(
+//*/((/********/%#%%%%%%%&@@@@@&%%#((//((((##%%####%%%#%%&&&&&&&&&&&&%%&&&@@@@@@@@@&&&&@@&&&&&%%#%%%&%%%%%%##(*****///(
+(((///******,,(%%%%%%%%%%%@@@@@@&&%##(((((####%###(###%&&%&&&&@@@@&&&&&&%&@@@@&&@@@&&&&&&&&&&&%%%##%%%%%%%%%%##(/**//((
+/**///*******#%%%##%%%%#%%&@@@@&@&&%%##(((####%%########%%%%%%%&&&&&%%%%&@@@@@@&@@&&&&&&&&%%%%%####%%%%%%%%####/*/(((
+//********,*##%##%%%%%###%@@@@@&@@@&%%########%%#######%#%%%%%%%%%%%%%%%@&@@@@@&&@&&&&&&%%%%%%%#%%%%###%%%%%%%%###(/(((
+(*****//***##%%##%%%##%##%&@@@@@@@@&&%%%%%%%%%%%%##%%%%%%%&%%%%%%%%%%&@@@@@@@@@&&@&&%%&%&%%####&&%%%#%%##%#%&%%%%###(((
+*******/**#%%##%%%%%####%%%@@@@&%@@@@&&%%%%%%%%%%%%%%%%%%%%%%%%%%&@@@@@@&@@@@@@&&@&%%%%%&%%%##%%&&%%%#%%%###%&&%######(
+*********#%%#%%%%%%%%##%%%#@@@%@&@@@@@@@@&&%%%%%%%%%%%%%%%%%&@@@@@@@@@@@&@&@@@@&&@%%%###%%%%##%#%&&%%##%%%%###%&%######
+*******/##%#%%#%%%%###%%%##&@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&@&@@@@@&&@%%##(#####%%####%&&%%##%%%###%&%#####
+((###(((#%#%#%######%%%%%##%@@&&@&%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&@@&@@@&@%###(((%###%%####%&%&%##%&%%##%####
+/(#&&@&(%%%%%%%%%#%&%%#%%###@&@@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&@@@@@@&@##((#%%%##%#####%%%&%##%&%%##%%####
+((%&@&%###%%##%#%&&%###%%%##&@@@@@%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&@@@@@@@&#(##%%#%##%#####%%%%%##%&&%#%%####
+(%&&&%%/%#%####%&&%%###%%%%#%@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%&@@@@@@&&@###((%#%%####%#####%%%%%##%%&%######
+%&&&&%#%(%###%%&&&%#%##%&&%%#@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&@@@@@@@&@##(##%##%%####%#####%%%%%#%%&&%#####
+&&&&%#%&&&(#%&%%%(#%%#&&&%#@@&&@@@%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%@&@@@%@@@@&@%#((#%##%%#####%######%%%%%&%%####
+&&%&&&&(#%&&%/####&&&%#@&@@@@@&%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&@@@@@@@&(##%#%##%%#####%########&%##%&%####
+
+Dan
+,//////////////((((((((((((//////////////////////////////***************************************,,,,,,,,,,,,...........
+,////////////////((((((((((/////////////////////////////////////***///////////////////////((((((((/////////////////////
+,//////////////////(((((((((((((///////////////////////////////***********//////////////////((((((((///////////////////
+,//////////////////((((((((((#((((////////////////////////******************//////////////////((((((///////////////////
+,///////////////////(((###########(((//////////***,,,,,,,,,,,,.....,,,*********//////////////////((((//////////////////
+,///////////////////((((############(((/////**,,,,,,,,,,,,...,......,,,,,*********/////////////////////////////////////
+,////////////////////(((####%#########((/*,,,,,,,,,,...................,,,,,*******/////////////////////(//////////////
+,////////////////////(((#############(/,,,,,,,..........................,,,,,,,*****/////////////////////(/////////////
+,/**//////////////////(((###########/,,,,,,,...............................,.,,,******/////////////////////////////////
+*//*//////////////////(((((#######(/,,,,,,,,.................................,,,,*******///////////////////////////////
+*//////////////////////((((((#####**,,,,,,,....................................,,,*******//////////////////////////////
+*//////**//////////////////((((#(*,,,,,,,,,....................................,,,,********////////*****///////////////
+*////////**/////////////////((((/*,,,,,,,,,....................................,,,,**********//////*******/////////////
+*/(((((///****//////////////////*,,,,,,,,,.....................................,,,,,*************////*********/////////
+*/////////******///////////////**,,,,,,,,,,,...................................,,,,,***************////***********/////
+**/////////*******/////////////*,,,,,,,,,..............,........ ...............,,,,,*//************/////**********////
+*******////*********///////////,,,,,,,,..........,,,//(((((((//**,,................,,*//***************/////**********/
+**********************/////////,,,,,,,,........,,,///(/////(####(//*,,...,,,,,,,,,,***///****************////**********
+************************//////*,,,,,,,,,...,,*/((((#(((////(((###((/,,.,,,,*///(###((#(//*****************/////********
+***************************///*,,,***((#%%%%%%&&&%#/*****//(((((////%%######%%%%%%%%%%%#/*******************///********
+*//////**********************/*/(#%%%%&&&&%#((/**((**/(###%#((##(//*/#%%%&&%#(((((((((##(#%#//*****************///*****
+/////////****//////*********,,,/(/*********///***((*,,,,,,,***///,,,(#*../&%####%%##%###*/(%&%*****************/////***
+/(/////((/((((((///////*****(#(*,.,,,,,,,,,,,,...,(*.......,,,,,.../#*...,#%****//((####&&%##/*******************/////*
+((((((((((##((((((///////**/(/*//*,,,,,,,,,,,,....,*/,............*(,...../#*,,********/(/*(**********************/////
+(((((((((####((((////////*****,,***,,,,,,,,,,.......,**/((#######/*.......,/(,,.,,...,**/**/***********************////
+((((((((((((((/////////****,,,,*//*,,,....,,.......... ....,,,,,...... .,*/(#####(((((/****************************/
+/////////////////////*******,,.,,.,,,,....................,,***,,...... .,,/*,,,.,,*//(******************************
+****************//////******,,....,,,..................,,,///,..*,,,,,,,..,,*//(**,,,,,*/******************************
+*****************//////*******......,...............,,,*/((*,....**/(((////(#(/*((*****//******************************
+,,,,*************//////********....,,,,,..........,,,*/(/*,......,,,,*/##%%#((////#//////******************************
+*,,,,,,,,,,******////////***********,,,,,,........,,,/(//*,,........,,*/((((((////#((/(((******************************
+*,,,,,,,,,,,,*****/////////******///,,,,,,,......,,,,*//(#((/***,,,...,,,**///((##(///((/******************************
+*,,,,,,,,,,,,,,*****////////////***,,,,,,,,,.....,...,,...*//*. ,..,.,**/((#&&%(**.,,/((/******************************
+**,,,,,,,,,,,,,,,*****//////////**,,,,,,,,,,,.....,,.,*,....,.. ./##//,,,.,*///********//*********************
+**,,,,,,,,,,,,,,,,,*****///////**,,,,,,,,,,,,,,,,,,,,,**,....,,... ...,,,////**/*,////*********/******************//**
+***,,,,,,,,,,,,,,,,,,,*****////**,,,,,,,,,,**,,,,,,,,*//*,..........,,,,,**//*/////(((*******************************/*
+/**********,,,,,,,,,,,,,*****//*,,,,,,,,,,,**,,,,,,,,/((//*,,,.....,,*******///(#((((**********************************
+//**********,,,,,,,,,,,,,,******,,,,.,,,,,,,**,,,.,,,//(//*********///////(((//##((/***********************************
+************,,,,,,,,,,,,,,,,,**,,......,,,,,*****,,.,/(#(/*,,/**,*//((///((((((#((*************************************
+***********,,,,,,,,,,,,,,,,,,,,,........,,,*******,,*(#(((/*/****,*****//*//(##%/**************************************
+***********,,,,,,,,,,,,,,,,,,,,...........,,,***//****/%%%#/////////*/***/((#%%#**************************************,
+***************,,,,,,,,,,,,,*,..............,,,**/////**(####(/((((////(((##%%(***************************************,
+*****************,,,,,,,,,,///,..............,,,**///(/////##%((((((/(###%%%#/******************************/*********,
+*********************,,,,,,,,,*///,....... ...,,,**/(((((((((##%##%%%%##%##(****************************///((((///***,
+********************,,,. ..,,,,,,,**#(*. ......,,,**/((((((((############(/****************************//(##%##(///*,
+*/////*************...,,,,,,,,,,*,**,*(%(*. ......,,,**/((###############((*****************************///(#%%##(//*,
+////////////****,...,..... .....,*******/#%#/,. .....,,***//(((#########(/********************************///((((////,
+(/(///////////,............,.......,,,,****#%%#/*......,,,,**//((((###((((************************************////////,
+((//////////*... ........,,,....,,.,,,****/(%%%%(*......,,,**//((((((((/*****************************************///,
+((((/////*,............,,,...,,.........,*****,*/#%%%%%(*,...,,,**///////(#(//***************************************/,
+((((///*,......................,,*//**/*,..,**,*****(%%%%%%#(*,,,,*******(&((/**************************************,
+((((/*,......... .........,,,,,.....,,,,,,,,*********/##%%%%%%%#(///***/#(/*************************************,
+///*...... ..,,,. ............. .,.......,,,,.....,*,,*****/(##%%%%%%%%%&&&&%%%%(**,,*/******************************,
+*,......,*,....................... .,,,. .,,*,,.. .,,************/((##%%%%%%%%%%%#***,///,,,,****,********************,
+,....,,*,......,,,,......... ..,,,***,,**,..,****,,,,.....,*********//*//**/////*****.*//*,,..*****,,,****************.
+,..,,....,**,..,... ..,,,,,,,,,,....,,******, .. ......,*....,*/***********,,*******,//*..,*,,**.,,*,,,,*************.
+.,..,.,**..,,....,*****... ........,,...*/*..,,,...***,.,,,,**/***/////////////**,,,..,..,.,/,,,**,.,,************.
+..,.,*,.....,*,,,............ ........,......,/*..,*,,,..,,. ...,,,,,,,*******,,******,...***..**,.,,,.....,*********.
+,,*,....,**,. ..... ..,,,**,**,,,,,*,**,,...,,,..*,,,,,....,****,,,,,,,,*,,,,,.....,,,,....*..,,.,*,.,,...,.,*********.
\ No newline at end of file
diff --git a/README.md b/README.md
index 92d73b7..a66bce8 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ Tests should demonstrate proper behavior, and proper handling of misuse (eg. att
- Checking
- Savings
- Investment
-- Account Actions
+- AccountsAndTransactions.Account Actions
- Withdraw from acct
- Deposit to acct
- Transfer across accounts (self)
diff --git a/pom.xml b/pom.xml
index 9901415..578d489 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,6 +7,32 @@
io.zipcoder
project-2-atm
1.0-SNAPSHOT
+
+
+ junit
+ junit
+ 4.12
+ compile
+
+
+ org.junit.jupiter
+ junit-jupiter
+ RELEASE
+ compile
+
+
+ junit
+ junit
+ 4.12
+ compile
+
+
+ junit
+ junit
+ 4.12
+ compile
+
+
\ No newline at end of file
diff --git a/src/main/java/AccountsAndTransactions/Account.java b/src/main/java/AccountsAndTransactions/Account.java
new file mode 100644
index 0000000..08c865f
--- /dev/null
+++ b/src/main/java/AccountsAndTransactions/Account.java
@@ -0,0 +1,123 @@
+package AccountsAndTransactions;
+
+import java.util.ArrayList;
+
+public class Account {
+ private static double chkAcctBal;
+
+
+ /*
+ Things we need here:
+ 1. checking accounts
+ 2. savings accounts
+ 3. investment accounts
+ ***bins would probably be a good way to store this information - have a bin for each user with a slot for each account
+
+ Things we may also need here?
+ 1. account balance - there's already a balance value in the User.java tab, but it might work better here because we need separate balances in each type of account
+ 2. account number
+ 3. BONUS - Persistence
+ - create a way to store user information, account balances, etc
+ - probably the best way if we get to this would be to save a current state of all account balances to a spreadsheet when we close the ATM app
+ - alternately, access the spreadsheet every time any transaction is completed, so that if the program crashes before closing all information is still saved
+ */
+
+ //establish all the data stored in the AccountsAndTransactions.Account object:
+ //instances of Accounts should have name [firstLast]
+ private String firstName;
+ private String lastName;
+ private int pin;
+ private int chkAcctNum;
+ private int savAcctNum;
+ private int invAcctNum;
+
+ private double savAcctBal;
+ private double invAcctBal;
+ public ArrayList transactionHistory = new ArrayList();
+
+ //actions that can be called to create a new account bin:
+ public Account(String firstName, String lastName, int pin){
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.pin = pin;
+ }
+
+
+ //create getters for all the data stored in the AccountsAndTransactions.Account object:
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public int getPin() {
+ return pin;
+ }
+
+ public int getChkAcctNum() {
+ return chkAcctNum;
+ }
+
+ public int getSavAcctNum() {
+ return savAcctNum;
+ }
+
+ public int getInvAcctNum() {
+ return invAcctNum;
+ }
+
+ public static double getChkAcctBal() {
+ return chkAcctBal;
+ }
+
+ public double getSavAcctBal() {
+ return savAcctBal;
+ }
+
+ public double getInvAcctBal() {
+ return invAcctBal;
+ }
+
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public void setPin(int pin) {
+ this.pin = pin;
+ }
+
+ public void setChkAcctNum(int chkAcctNum) {
+ this.chkAcctNum = chkAcctNum;
+ }
+
+ public void setSavAcctNum(int savAcctNum) {
+ this.savAcctNum = savAcctNum;
+ }
+
+ public void setInvAcctNum(int invAcctNum) {
+ this.invAcctNum = invAcctNum;
+ }
+
+ public void setChkAcctBal(double chkAcctBal) {
+ this.chkAcctBal = chkAcctBal;
+ }
+
+ public void setSavAcctBal(double savAcctBal) {
+ this.savAcctBal = savAcctBal;
+ }
+
+ public void setInvAcctBal(double invAcctBal) {
+ this.invAcctBal = invAcctBal;
+ }
+
+ public void setTransactionHistory(ArrayList transactionHistory) {
+ this.transactionHistory = transactionHistory;
+ }
+}
diff --git a/src/main/java/AccountsAndTransactions/AccountTest.java b/src/main/java/AccountsAndTransactions/AccountTest.java
new file mode 100644
index 0000000..44fe6d8
--- /dev/null
+++ b/src/main/java/AccountsAndTransactions/AccountTest.java
@@ -0,0 +1,18 @@
+package AccountsAndTransactions;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class AccountTest {
+
+ @Test
+ public void AccountTest(){
+ Account jeff = new Account("Jeff", "Smith",1234);
+ Assert.assertEquals("Jeff", jeff.getFirstName());
+ Assert.assertEquals("Smith", jeff.getLastName());
+ Assert.assertEquals(1234, jeff.getPin());
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/AccountsAndTransactions/Transactions.java b/src/main/java/AccountsAndTransactions/Transactions.java
new file mode 100644
index 0000000..91b5a29
--- /dev/null
+++ b/src/main/java/AccountsAndTransactions/Transactions.java
@@ -0,0 +1,115 @@
+package AccountsAndTransactions;
+
+public class Transactions {
+ /*
+ needed:
+ 1. Deposit to acct
+ 2. Withdraw from acct
+ 3. Transfer across accounts (self)
+ 4. Open new account
+ 5. Close account (must be empty)
+ 6. Print transaction history
+ 7. Check balance
+ *. Challenge: Transfer to another user's account (but not from)
+ */
+
+ //establish variables:
+ private double increment; //the amount to be changed
+ private Account acctName; //the primary account (used for most transactions
+ private Account acctName2; //used when a second account type is required, such as a transfer)
+ private String acctType; //the type of account being changed
+ private String acctType2; //used when a second account type is required, such as a transfer
+
+
+ public Transactions(Account acctName) {
+ this.acctName = acctName;
+ }
+
+ public void deposit(double increment, String acctType){
+ this.increment = increment; //pull the amount being changed
+ this.acctType = acctType; //determine which account
+ //determine appropriate account, then perform balance += increment;
+ if(acctType == "checking"){
+ acctName.setChkAcctBal(acctName.getChkAcctBal() + increment);
+ }
+ else if (acctType == "savings"){
+ acctName.setSavAcctBal(acctName.getSavAcctBal() + increment);
+ }
+ else if (acctType == "investment"){
+ acctName.setInvAcctBal(acctName.getInvAcctBal() + increment);
+ }
+ else {
+ System.out.println("not a valid account type");
+ //then return them to the transaction screen
+ }
+ acctName.transactionHistory.add(String.format("Deposited $%.2f to " + acctType + ".", increment)); //append this transaction to the user's transaction history ArrayList
+ }
+
+ public void withdraw(double increment, String acctType){
+ this.increment = increment; //pull the amount being changed
+ this.acctType = acctType; //determine which account
+ if(acctType == "checking" && acctName.getChkAcctBal() >= increment) { //if checking && sufficient funds in acct
+ acctName.setChkAcctBal(acctName.getChkAcctBal() - increment); //decrement checking account
+ }
+ else if (acctType == "savings" && acctName.getSavAcctBal() >= increment){ //if savings && sufficient funds in acct
+ acctName.setSavAcctBal(acctName.getSavAcctBal() - increment); //decrement savings account
+ }
+ else if (acctType == "investment" && acctName.getInvAcctBal() >= increment){ //if investment && sufficient funds in acct
+ acctName.setInvAcctBal(acctName.getInvAcctBal() - increment); //decrement investment acct
+ }
+ else { //error or insufficient funds
+ System.out.println("not a valid account type or insufficient funds in " + acctType + " acct");
+ }
+ acctName.transactionHistory.add(String.format("Withdrew $%.2f from " + acctType + ".", increment)); //append this transaction to the user's transaction history ArrayList
+ }
+
+ public void transfer(double increment, String acctType, Account acctName2, String acctType2){
+ this.increment = increment; //pull the amount being changed
+ this.acctType = acctType; //determine the origin account
+ this.acctName2 = acctName2; //Account being deposited into
+ this.acctType2 = acctType2; //determine the destination account
+ withdraw(increment, acctType); //withdraw from first user
+ acctName = acctName2; //switch the account to the second user
+ deposit(increment, acctType2); //deposit to the second user
+ }
+
+ //close account will close an empty account, but will not run if the member has money remaining in any account
+ public void closeAccount(){
+ if (acctName.getChkAcctBal() == 0 && acctName.getSavAcctBal() == 0 && acctName.getInvAcctBal() == 0){
+ acctName.setFirstName(null); //java cannot delete objects, so instead we will set all bins to null
+ acctName.setLastName(null);
+ acctName.setPin(1000);
+ acctName.transactionHistory.add("Closed all accounts");
+ }
+ }
+
+ //force close account will close all accounts regardless of balance, and dispenses the sum balance in cash before logging out
+ //think of it like force choking your bank
+ public void forceCloseAccount(){
+ withdraw(acctName.getChkAcctBal(), "checking");
+ withdraw(acctName.getSavAcctBal(), "savings");
+ withdraw(acctName.getInvAcctBal(), "investment");
+ acctName.setFirstName(null); //java cannot delete objects, so instead we will set all bins to null
+ acctName.setLastName(null);
+ acctName.setPin(1000);
+ acctName.transactionHistory.add("Closed all accounts");
+ }
+
+ public String[] transactionHistory(){
+ String[] history = new String[acctName.transactionHistory.size()];
+ for (int i = 0; i < acctName.transactionHistory.size(); i++){
+ history[i] = acctName.transactionHistory.get(i);
+ }
+ return history;
+ //get a copy of the transaction history
+ //convert the copy to a string array
+ //print it
+ }
+
+ /* --------------------CHALLENGE------------------------
+ public void transferOtherUser(double increment, String acctType, String acctType2, user2){
+ UPDATE - I forgot this was the challenge and I programmed the transfer this way originally because I thought we had to.......
+ }
+ -----------------------CHALLENGE---------------------*/
+
+}
diff --git a/src/main/java/AccountsAndTransactions/TransactionsTest.java b/src/main/java/AccountsAndTransactions/TransactionsTest.java
new file mode 100644
index 0000000..ab6e782
--- /dev/null
+++ b/src/main/java/AccountsAndTransactions/TransactionsTest.java
@@ -0,0 +1,110 @@
+package AccountsAndTransactions;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+
+public class TransactionsTest {
+2
+
+ @Test
+ public void depositTest(){
+ Account jeff = new Account ("Jeff", "Smith", 1234);
+ jeff.setChkAcctBal(100.00);
+ Transactions deposit = new Transactions(jeff);
+ deposit.deposit(100.00,"checking");
+ Assert.assertEquals(200.00,jeff.getChkAcctBal(), 0.0);
+ Assert.assertEquals("Deposited $100.00 to checking.", jeff.transactionHistory.get(0)); //make sure it's also printing to transaction history
+// System.out.println(jeff.transactionHistory.get(0)); //ignore this - it's just a double check on the format
+ }
+ // make sure transaction history is getting recorded for deposits
+
+
+ @Test //sufficient funds - withdraw completed
+ public void withdrawTest(){
+ Account jeff = new Account ("Jeff", "Smith", 1234);
+ jeff.setSavAcctBal(100.00);
+ Transactions withdraw = new Transactions (jeff);
+ withdraw.withdraw(50.00, "savings");
+ Assert.assertEquals(50.00, jeff.getSavAcctBal(), 0.00);
+ Assert.assertEquals("Withdrew $50.00 from savings.", jeff.transactionHistory.get(0)); //make sure it's also printing to transaction history
+ //System.out.println(jeff.transactionHistory.get(0)); //ignore this - it's just a double check on the format
+
+ }
+
+ @Test //insufficient funds - withdraw aborted
+ public void withdrawTest2(){
+ Account jeff = new Account ("Jeff", "Smith", 1234);
+ jeff.setSavAcctBal(100.00);
+ Transactions withdraw = new Transactions(jeff);
+ withdraw.withdraw(200.00, "savings");
+ Assert.assertEquals(100.00, jeff.getSavAcctBal(),0.00);
+ }
+
+ //write a test to make sure transaction history is getting recorded for withdrawals
+
+ @Test //from checking to savings
+ public void transferTest(){
+ Account jeff = new Account ("Jeff", "Smith", 1234);
+ jeff.setChkAcctBal(100.00);
+ jeff.setSavAcctBal(500.00);
+ Transactions transfer = new Transactions(jeff);
+ transfer.transfer(50.00, "checking", jeff, "savings");
+ Assert.assertEquals(50.00, jeff.getChkAcctBal(), 0.00);
+ Assert.assertEquals(550.00, jeff.getSavAcctBal(), 0.00);
+ }
+
+ @Test //from checking to someone else's checking
+ public void transferTest2(){
+ Account jeff = new Account ("Jeff", "Smith", 1234);
+ Account stan = new Account ("Stan", "Smith", 3434);
+ jeff.setChkAcctBal(100.00);
+ stan.setChkAcctBal(500.00);
+ Transactions transfer = new Transactions(jeff);
+ transfer.transfer(50.00, "checking", stan, "checking");
+ Assert.assertEquals(50.00, jeff.getChkAcctBal(), 0.00);
+ Assert.assertEquals(550.00, stan.getChkAcctBal(), 0.00);
+ }
+
+ @Test
+ public void closeAccount(){
+ Account jeff = new Account ("Jeff", "Smith", 1234);
+ jeff.setChkAcctBal(0.00);
+ jeff.setSavAcctBal(0.00);
+ jeff.setInvAcctBal(0.00);
+ Transactions closeAccount = new Transactions(jeff);
+ closeAccount.closeAccount();
+ Assert.assertEquals(null, jeff.getFirstName());
+ Assert.assertEquals(null, jeff.getLastName());
+ Assert.assertEquals(1000, jeff.getPin());
+ }
+
+ @Test
+ public void forceCloseAccount(){
+ Account jeff = new Account ("Jeff", "Smith", 1234);
+ jeff.setChkAcctBal(50.00);
+ jeff.setSavAcctBal(150.00);
+ jeff.setInvAcctBal(100.00);
+ Transactions forceCloseAccount = new Transactions(jeff);
+ forceCloseAccount.forceCloseAccount();
+ Assert.assertEquals(0.00, jeff.getChkAcctBal(), 0.00);
+ Assert.assertEquals(0.00, jeff.getSavAcctBal(),0.00);
+ Assert.assertEquals(0.00, jeff.getInvAcctBal(),0.00);
+ Assert.assertEquals(null, jeff.getFirstName());
+ Assert.assertEquals(null, jeff.getLastName());
+ Assert.assertEquals(1000, jeff.getPin());
+ }
+
+ //make one last test that tests the transaction history
+ @Test
+ public void transactionHistoryTest(){
+ Account jeff = new Account ("Jeff", "Smith", 1234);
+ Transactions history = new Transactions(jeff);
+ history.deposit(100.00, "checking");
+ history.withdraw(50.00, "checking");
+ String[] expected = {"Deposited $100.00 to checking.","Withdrew $50.00 from checking."};
+ Assert.assertEquals(expected, history.transactionHistory());
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/Console.java b/src/main/java/Console.java
new file mode 100644
index 0000000..229a44c
--- /dev/null
+++ b/src/main/java/Console.java
@@ -0,0 +1,32 @@
+import java.util.Scanner;
+
+public class Console {
+ public static void print(String output, Object... args) {
+ System.out.printf(output, args);
+ }
+
+ public static void println(String output, Object... args) {
+ print(output + "\n", args);
+ }
+
+ public static String getStringInput(String prompt) {
+ Scanner scanner = new Scanner(System.in);
+ println(prompt);
+ String userInput = scanner.nextLine();
+ return userInput;
+ }
+
+ public static Integer getIntegerInput(String prompt) {
+ Scanner scanner = new Scanner(System.in);
+ println(prompt);
+ Integer userInput = scanner.nextInt();
+ return userInput;
+ }
+
+ public static Double getDoubleInput(String prompt) {
+ Scanner scanner = new Scanner(System.in);
+ println(prompt);
+ Double userInput = scanner.nextDouble();
+ return userInput;
+ }
+}
diff --git a/src/main/java/Main.java b/src/main/java/Main.java
index 05e41a9..e855118 100644
--- a/src/main/java/Main.java
+++ b/src/main/java/Main.java
@@ -1,9 +1,67 @@
+
/**
* Created by iyasuwatts on 10/17/17.
*/
+
public class Main {
- public static void main(String[] args){
-
+ public static void main(String[] args) {
+
+ boolean turnOn = true;
+ {
+
+
+ Console.println("Welcome to the ATM ! \n \n" +
+ "*** *** *** \n" +
+ "*** *** *** \n" +
+ "*** *** *** \n" +
+ "*** *** ***** *** *** *** \n" +
+ "*** *** ******* *** ******** \n" +
+ "*********** **** *** *** **** **** \n" +
+ "*********** *** *** *** *** *** \n" +
+ "*** *** ********* *** *** *** \n" +
+ "*** *** ********* *** *** *** \n" +
+ "*** *** *** *** *** *** \n" +
+ "*** *** **** *** **** *** \n" +
+ "*** *** ******** *** ******** \n" +
+ "*** *** ******* *** *** *** \n" +
+ " *** \n" +
+ " *** \n" +
+ " *** \n==========++=========" +
+ " \nWould you like to make a new account or do you have an existing account?");
+ Integer inputValue = Console.getIntegerInput("Choose an option: \n 1. I have an existing account \n 2. I want to make a new Account\n 3. Exit ATM "
+ );
+
+ switch (inputValue) {
+ case 1:
+ String usernameValue = Console.getStringInput("Welcome back! \n Please input your username: ");
+ Integer pinNum = Console.getIntegerInput(" Please input your four digit pin number: ");
+ Menu.pinMenu(pinNum);
+
+
+ break;
+
+
+ case 2:
+ Console.println("Thank you for choosing our bank! Please input your first name:");
+ String firstName = Console.getStringInput("First name:");
+ String lastName = Console.getStringInput("Last name:");
+ System.out.println("Welcome " + firstName + " \n Your new username is :" + firstName + lastName);
+ Integer newPinNum = Console.getIntegerInput(" Please create your four digit pin number: ");
+ Menu.pinMenu(newPinNum);
+ TransactionMenu.accountsMenu();
+
+ break;
+ case 3:
+ turnOn = false;
+ break;
+
+ default:
+ Console.println("Error: invalid option");
+ break;
+ }
+ } System.out.print("Thank you for using our services! Have a nice Day!");
+
}
}
+
diff --git a/src/main/java/Menu.java b/src/main/java/Menu.java
new file mode 100644
index 0000000..30813c7
--- /dev/null
+++ b/src/main/java/Menu.java
@@ -0,0 +1,28 @@
+import java.util.InputMismatchException;
+
+public class Menu {
+
+ public static void pinMenu(Integer pinNum) {
+
+
+// if (pinNumValue== usernamePinNum ){
+// call the transaction methods here
+// }
+ for (int i = 1; i <= 1000; i++) {
+ try {
+
+ if (pinNum <= 9999 && pinNum >= 1000) {
+ //takes you to Transactions from here
+ break;
+ } else {
+ System.out.println("Pin must be four digit");
+
+ }
+
+ } catch (InputMismatchException e) {
+
+ System.out.println("Error use numbers not alphabets or characters");
+ }
+ }
+ }
+}
diff --git a/src/main/java/TransactionMenu.java b/src/main/java/TransactionMenu.java
new file mode 100644
index 0000000..5cf759f
--- /dev/null
+++ b/src/main/java/TransactionMenu.java
@@ -0,0 +1,66 @@
+import AccountsAndTransactions.Account;
+
+public class TransactionMenu {
+
+
+ public static void accountsMenu() {
+
+
+ Integer inputValue = Console.getIntegerInput("Please choose which account you want to access" +
+ " \n 1. Checkings \n 2. Savings \n 3. Investement \n 4. Quit ");
+
+
+ switch (inputValue) {
+ case 1:
+
+ System.out.println(String.format(" Your Checkings balance is $%.2f",Account.getChkAcctBal()));
+ System.out.println ("What would you like to do?");
+ // transactions();
+
+ break;
+
+ case 2:
+ //System.out.println(" Your Savings balance is $" + Account.getSavAcctBal());
+ //System.out.println ("What would you like to do?")
+ // transactions();
+
+
+ break;
+
+ case 3:
+ //System.out.println(" Your Investment balance is $" + Account.getInvAcctBal());
+ //System.out.println ("What would you like to do?")
+ // transactions();
+
+
+ break;
+
+
+ }
+ }
+
+
+ public static void transactions(Integer userInput) {
+ Integer inputValue = Console.getIntegerInput("Choose an option: \n 1. Deposit \n 2. Withdrawl \n 3. Transfer \n 4. Check Balance"
+ );
+
+ switch (inputValue) {
+ case 1:
+ // input deposit method here
+ break;
+
+ case 2:
+ //input Withdrawl method here
+ break;
+
+ case 3:
+ // input Transfer method here
+ break;
+
+ case 4:
+
+ break;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/User.java b/src/main/java/User.java
new file mode 100644
index 0000000..5b8b57e
--- /dev/null
+++ b/src/main/java/User.java
@@ -0,0 +1,70 @@
+import AccountsAndTransactions.Account;
+
+import java.util.ArrayList;
+
+public class User {
+
+ private String firstName;
+ private String lastName;
+ private Integer pin;
+ private Double balance;
+ private ArrayList accsStored = new ArrayList();
+
+ public User() {
+ }
+ public User(String firstName, String lastName, Integer pin, Double balance) {
+ setFirstName(firstName);
+ setLastName(lastName);
+ setPin(pin);
+ setBalance(balance);
+ }
+ public String getFirstName() {
+ return firstName;
+ }
+ public void setFirstName(String firstName){
+ if (firstName != null){
+ this.firstName = firstName;
+ }
+ }
+
+
+ public String getLastName() {
+ return lastName;
+ }
+ public void setLastName(String lastName) {
+ if (lastName != null){
+ this.lastName = lastName;
+ }
+ }
+
+
+ public Integer getPin() {
+ return pin;
+ }
+ public void setPin(Integer pin) {
+ if (pin != null) {
+ this.pin = pin;
+ }
+ }
+
+
+ public Double getBalance() {
+ return balance;
+ }
+ public void setBalance(Double balance) {
+ if (balance >= 0) {
+ this.balance = balance;
+ }
+ }
+ public void addToBalance(Double amount){
+ if (amount > 0){
+ balance += amount;
+ }
+ }
+ public void subtractFromBalance(Double amount){
+ if (amount > 0){
+ balance -= amount;
+ }
+
+ }
+}