Restructured the code
Added missing files
Merge remote-tracking branch 'origin/use_cmake2' into next

* origin/use_cmake2:
  Added missing files
  Restructured the code