Revert "Main structure of the project"

This reverts commit bba3ba654b7697ddaf08d6c80c1e8666931ae0d8.
Revert "Revert "Main structure of the project""

This reverts commit 2b36a0bec63404a3310c26245dc46a908822d561.
Merge remote-tracking branch 'origin/master'