Most of Code presented was created for the CSE219 class. Professor Richard McKenna, only added code will be done by me