Task 7.1 initial commit
Task 7.2 initial commit.
Task 7.1 code optimization, Added documentation.
Task1, Task2, Task6, Task7.1, Task7.2 - code fixes