Refactored solution for milestone 2 and added lots of error handling.