Refactor: Replace 'print' with 'say'
Refactor: Some error handling improvementes
Refactoring: foreach instead for when it makes sense
Refactoring: call 'return;' in the end of subroutines
Adding tests. We only test help and usage until now