Revert "Refactoring of constructors"

This reverts commit 405d488f3b30492fdf0206bae2e124ccbed7f61b.
Revert "Revert "Refactoring of constructors""

This reverts commit 48cb5ed650a83995972bb267b2969170c637d87b.