Revert "Updated changes."

This reverts commit ce3305639680bb5cc225815dc9c6d4ed5f48a7b7.
Revert "Revert "Updated changes.""

This reverts commit 74d1ee27fca8b47248cf5169a9ebb0a83c562958.
Long gone are segmentation  faults.