Error handling complete, needs refactoring but no input can crash program.