Revert "Refactoring and removed useless empty  destructors"

This reverts commit ee85cb567f6cb2c5ff500e73834c17c068ba88d6.
Revert "Initial commit" from freemind

This reverts commit 816e3151ee354794012aa641049d02cf840be67b.