Documentation
Initial solution commit
Code refactor
Common logging added and used