#11 - formatted code
#12 - formatted code
#13 - formatted code + added small break (read comments)
#14 - added optional 'error handling technique' (read comments and check code)