Lot of structure rework.
Revert "Lot of structure rework."

This reverts commit 20c15965cedac65f9f2de31d720c2e6e6467f810.
merge from dev
merge from master