Add Logger instead of print and unit tests
Finish logger refactor