Lots of changes and additions, console usage, exception handling etc.