Things to do: - [x] Correcting mistakes or bad formulation in comments - [x] Correcting style issues - [x] Copyright is missing - [x] squash branch for pr - [x] open PR