fix #28
minor fixes during testing
part 1 of #36
fix #36
Fix #17
fix #24
minor readability fix
experiment for #39
fix #38
included new class from 2 commits before
added new test casae related to #32
workaround #40
TRY Catch related to #40
test case for switch - passed - no extra handling required