Recently my team has come to an understanding that our new project is really in need of full restructuring. The structure that was made in the beginning didn't meet our requirements and plans for its extension. However, this issue turned out to be more difficult, because this project is under a very active development at the moment, while the restructuring itself could take plenty of time (week or two), because we weren't sure about how the final version should have looked like and decided to try different approaches. It could lead to lots of problems with merging any new commit, which appear every day. So here is the solution we came to ...