Catch works great. Need refactoring only
Improved tests, refactoring